$$$n$$$ человек собрались, чтобы провести заседание жюри предстоящего соревнования, $$$i$$$-й член жюри придумал $$$a_i$$$ задач, которыми он хочет поделиться с другими.
Сначала жюри выбирает порядок, которому они будут следовать при обсуждении задач. Пусть это будет перестановка $$$p$$$ чисел от $$$1$$$ до $$$n$$$ (массив размера $$$n$$$, в котором каждое число от $$$1$$$ до $$$n$$$ встречается ровно один раз).
Затем обсуждение происходит следующим образом:
Перестановка $$$p$$$ хорошая, если никто из членов жюри не будет рассказывать две или более задач подряд.
Подсчитайте количество хороших перестановок. Ответ может быть очень большим, поэтому выведите его по модулю $$$998\,244\,353$$$.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Первая строка набора входных данных содержит одно целое число $$$n$$$ ($$$2 \le n \le 2 \cdot 10^5$$$) — количество членов жюри.
Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^9$$$) — количество задач, которые придумал $$$i$$$-й член жюри.
Сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите одно целое число — количество хороших перестановок, взятое по модулю $$$998\,244\,353$$$.
4 2 1 2 3 5 5 5 4 1 3 3 7 6 3 4 2 1 3 3
1 6 0 540
Объяснение первого примера:
Существуют две возможные перестановки, $$$p = [1, 2]$$$ и $$$p = [2, 1]$$$. Для $$$p = [1, 2]$$$ процесс происходит следующим образом:
Второй член жюри рассказал две задачи подряд, поэтому перестановка не является хорошей.
Для $$$p = [2, 1]$$$ процесс происходит следующим образом:
Эта перестановка является хорошей.
Название |
---|