CF1569C Jury Meeting

Description

$ 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 $ .

Explanation/Hint

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.