Чергове розчарування: задача на парування#10774

Чергове розчарування: задача на парування

1 секунда
256 мегабайтів
Дуже складна

Дано непарне число . Для масиву з чисел [a_1, a_2, \ldots, a_n], будемо визначати його вартість, як максимальну вагу досконалого парування в графі на n+1 вершинах, в якому вага ребра для i<j визначається як max(a_i, a_{i+1}, \ldots, a_{j-1}).

Наприклад, для масиву [1, 30, 15], ми маємо граф на вершинах з наступними відстанями між ними:

Тут парування ((1, 2), (3, 4)) має вагу , а ((1, 3), (2, 4)) і ((1, 4), (2, 3)) мають ваги , тому вартість всього масиву рівна .

Вам дано масив довжини з попарно різних елементів. Знайдіть суму вартостей всіх перестановок цього масиву, за модулем 10^9 + 7.

Нагадаємо, що досконале парування в зваженому графі на вершинах — це набір з ребер такий, що кожна вершина є кінцем рівно одного ребра. Вагою досконалого парування вважається сума ваг всіх вибраних ребер.

Вхідні дані

Перший рядок містить єдине ціле число (1 \leq n \leq 99\,999, непарне) — довжину масиву.

Другий рядок містить попарно різних цілих чисел b_1, b_2, \ldots, b_n (1 \leq b_i \leq 10^8) — елементи масиву.

Вихідні дані

Виведіть суму вартостей всіх перестановок цього масиву, за модулем 10^9 + 7.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading

Примітка

В прикладі:

  • Вартості масивів [1, 30, 15] та [15, 30, 1] рівні .

  • Вартості масивів [1, 15, 30], [30, 15, 1], [15, 1, 30], [30, 1, 15] рівні .

Сума по всім перестановкам рівна 60\cdot 2 + 45\cdot 4 = 300.