eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Полностью несортированные последовательности

Полностью несортированные последовательности

Недавно Вас повысили до ведущего научного сотрудника НАСА, Национальной ассоциации алгоритмов сортировки. Поздравляем! Ваша основная обязанность --- тестирование алгоритмов сортировки, которые разрабатывает Ваша команда. К счастью, в этом году у НАСА большой бюджет, и вы смогли купить несколько современных целых чисел, которые можно использовать для тестирования алгоритмов сортировки. Как ведущий ученый, вы хорошо знаете, что алгоритмы проверяются по их поведению при наихудших входных данных. Итак, чтобы протестировать алгоритмы сортировки, вам нужны как можно более неотсортированные последовательности. Для последовательности чисел $(a_1, . . ., a_n)$, будем говорить, что элемент $a_k$ отсортирован, если для всех индексов $j$ таких что $j > k$, $a_j \ge a_k$ и для всех индексов $j$ таких что $j < k$, $a_j \le a_k$. Например, в $$ (1, 3, 2, 3, 4, 6, 5, 5) $$ отсортированными элементами являются $1$, второе вхождение $3$ и $4$. Обратите внимание, что последовательность сортируется тогда и только тогда, когда отсортированы все ее элементы. Последовательность называется полностью несортированной, если ни один из ее элементов не отсортирован. Задана последовательность целых чисел. Какое количество полностью неотсортированных последовательностей можно получить, переставив ее элементы? Две последовательности $(b_1, ..., b_n)$ и $(c_1, ..., c_n)$ считаются различными, если существует некоторый индекс $i \in \{1, ..., n\} $, для которого $b_i\ne c_i$. Поскольку количество перестановок может быть очень большим, найдите его по модулю $10^9 + 9$. \InputFile Начинается с целого числа $n~(1 \le n \le 5000)$. Далее следует одна строка с $n$ целыми числами $a_1, ..., a_n~(0 \le a_i \le 10^9)$. \OutputFile Выведите одно целое число: количество полностью неотсортированных последовательностей, которые можно получить, переставив $a_i$ по модулю $10^9 + 9$.
Ліміт часу 1 секунда
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
4
0 1 2 3
Вихідні дані #1
14
Вхідні дані #2
5
1 1 2 1 1
Вихідні дані #2
1
Вхідні дані #3
13
1 2 3 4 5 6 7 8 9 10 11 12 13
Вихідні дані #3
298600727
Джерело 2018 Benelux Algorithm Programming Contest (BAPC), Problem E