Цілком невідсортовані послідовності#9882

Цілком невідсортовані послідовності

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

Нещодавно вас призначили провідним науковим співробітником NASA — Національної асоціації алгоритмів сортування (National Association for Sorting Algorithms). Вітаємо! Ваш головний обов'язок — тестувати алгоритми сортування, які розробляє ваша команда. На щастя, цього року у NASA великий бюджет, і вам вдалося закупити найновіші цілі числа для тестування алгоритмів сортування.

Як провідний науковий співробітник, ви чудово знаєте, що алгоритми оцінюють за їхньою поведінкою на найгірших вхідних даних. Тому для тестування алгоритмів сортування вам потрібні послідовності, які неврівноважено впорядковані настільки, наскільки це можливо.

Нехай дано послідовність чисел (a_1, \ldots, a_n). Будемо говорити, що елемент a_k стоїть на своєму місці, якщо a_j \ge a_k для всіх індексів j > k і a_j \le a_k для всіх індексів j < k. Наприклад, у послідовності

(1, 3, 2, 3, 4, 6, 5, 5)

на своїх місцях стоять елементи , друге входження та . Зауважимо, що послідовність відсортована тоді і тільки тоді, коли всі її елементи стоять на своїх місцях. Послідовність називається цілком невідсортованою, якщо жоден її елемент не стоїть на своєму місці.

Скільки цілком невідсортованих послідовностей можна отримати, переставляючи елементи заданої послідовності цілих чисел? Дві послідовності (b_1, \ldots, b_n) та (c_1, \ldots, c_n) вважаються різними, якщо b_i \ne c_i для деякого індексу i \in \{1, \ldots, n\}. Оскільки це число може бути дуже великим, виведіть його за модулем 10^9 + 9.

Вхідні дані

У першому рядку задано ціле число n~(1 \le n \le 5000).

У другому рядку задано цілих чисел a_1, \ldots, a_n~(0 \le a_i \le 10^9).

Вихідні дані

Виведіть одне ціле число — кількість цілком невідсортованих послідовностей, які можна отримати перестановкою елементів a_1, \ldots, a_n, за модулем 10^9 + 9.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading