Jury Meeting
Contest: Educational Codeforces Round 113 (Rated for Div. 2)
Difficulty rating: 1500
Tags: combinatorics, math

$$$n$$$ people gathered to hold a jury meeting of the upcoming competition, the $$$i$$$-th member of the jury came up with $$$a_i$$$ tasks, which they want to share with each other.

First, the jury decides on the order which they will follow while describing the tasks. Let that be a permutation $$$p$$$ of numbers from $$$1$$$ to $$$n$$$ (an array of size $$$n$$$ where each integer from $$$1$$$ to $$$n$$$ occurs exactly once).

Then the discussion goes as follows:

- If a jury member $$$p_1$$$ has some tasks left to tell, then they tell one task to others. Otherwise, they are skipped.
- If a jury member $$$p_2$$$ has some tasks left to tell, then they tell one task to others. Otherwise, they are skipped.
- ...
- If a jury member $$$p_n$$$ has some tasks left to tell, then they tell one task to others. Otherwise, they are skipped.
- If there are still members with tasks left, then the process repeats from the start. Otherwise, the discussion ends.

A permutation $$$p$$$ is nice if none of the jury members tell two or more of their own tasks in a row.

Count the number of nice permutations. The answer may be really large, so print it modulo $$$998\,244\,353$$$.

Input format:
The first line contains a single integer $$$t$$$ ($$$1 \le t \le 10^4$$$) — the number of test cases.

The first line of the test case contains a single integer $$$n$$$ ($$$2 \le n \le 2 \cdot 10^5$$$) — number of jury members.

The second line contains $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^9$$$) — the number of problems that the $$$i$$$-th member of the jury came up with.

The sum of $$$n$$$ over all test cases does not exceed $$$2 \cdot 10^5$$$.

Output format:
For each test case, print one integer — the number of nice permutations, taken modulo $$$998\,244\,353$$$.

Constraints:
Time limit: 2.0 s
Memory limit: 256.0 MB

Note:
Explanation of the first test case from the example:

There are two possible permutations, $$$p = [1, 2]$$$ and $$$p = [2, 1]$$$. For $$$p = [1, 2]$$$, the process is the following:

1. the first jury member tells a task;
2. the second jury member tells a task;
3. the first jury member doesn't have any tasks left to tell, so they are skipped;
4. the second jury member tells a task.

So, the second jury member has told two tasks in a row (in succession), so the permutation is not nice.

For $$$p = [2, 1]$$$, the process is the following:

1. the second jury member tells a task;
2. the first jury member tells a task;
3. the second jury member tells a task.

So, this permutation is nice.

Example input:
4
2
1 2
3
5 5 5
4
1 3 3 7
6
3 4 2 1 3 3

Example output:
1
6
0
540

Editorial:
Note that if there are at least two members with the maximum value of $$$a_i$$$, then any permutation is nice.
Now let's consider the case when there is only one maximum. Let's find out when the permutation is nice. Let $$$x$$$ be the index of the jury member with the maximum number of tasks. Then, during the $$$a_x$$$-th discussion round, they will be the only one who will tell their task, because the other members of the jury have already told all their tasks. So during the $$$(a_x-1)$$$-th discussion round, there should be a jury member who tells a task after the $$$x$$$-th jury member.
Let $$$k$$$ be the number of elements in the array $$$a$$$ equal to $$$a_x-1$$$. Then, if at least one of these $$$k$$$ jury members goes after the jury member $$$x$$$ in the permutation, then the permutation is nice. Using this, we will count the number of bad permutations. Let's fix the elements in the permutation that are not equal to $$$a_x$$$ or $$$a_x-1$$$, there are $$$n-k-1$$$ of them, then the number of ways is $$$ A_n^{n-k-1} = \frac{n!}{(k+1)!}$$$. It remains to place $$$k+1$$$ elements so that the maximum is in the last position among them, there are $$$k!$$$ such ways. The total number of bad permutations is $$$\frac{n!k!}{(k+1)!}=\frac{n!}{k + 1}$$$. So the answer is $$$n! - \frac{n!}{k + 1}$$$.