CF1569C.Jury Meeting

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

nn people gathered to hold a jury meeting of the upcoming competition, the ii -th member of the jury came up with aia_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 pp of numbers from 11 to nn (an array of size nn where each integer from 11 to nn occurs exactly once).

Then the discussion goes as follows:

  • If a jury member p1p_1 has some tasks left to tell, then they tell one task to others. Otherwise, they are skipped.
  • If a jury member p2p_2 has some tasks left to tell, then they tell one task to others. Otherwise, they are skipped.
  • ...
  • If a jury member pnp_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 pp 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 998244353998\,244\,353 .

输入格式

The first line contains a single integer tt ( 1t1041 \le t \le 10^4 ) — the number of test cases.

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

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 1ai1091 \le a_i \le 10^9 ) — the number of problems that the ii -th member of the jury came up with.

The sum of nn over all test cases does not exceed 21052 \cdot 10^5 .

输出格式

For each test case, print one integer — the number of nice permutations, taken modulo 998244353998\,244\,353 .

输入输出样例

  • 输入#1

    4
    2
    1 2
    3
    5 5 5
    4
    1 3 3 7
    6
    3 4 2 1 3 3

    输出#1

    1
    6
    0
    540

说明/提示

Explanation of the first test case from the example:

There are two possible permutations, p=[1,2]p = [1, 2] and p=[2,1]p = [2, 1] . For p=[1,2]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]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.

首页