← Home
write a go solution for Description:
You are given a permutation p of length n.

Please count the number of permutations q of length n which satisfy the following:

- for each 1<=i<n, max(q_1,ldots,q_i)neqmax(p_1,ldots,p_i).

Since the answer may be large, output the answer modulo 998,244,353.

Input Format:
Each test contains multiple test cases. The first line contains the number of test cases t (1<=t<=10^4). The description of the test cases follows.

The first line of each test case contains a single integer n (2<=n<=2*10^5).

The second line of each test case contains n integers p_1,p_2,ldots,p_n (1<=p_i<=n). It is guaranteed that p is a permutation.

It is guaranteed that the sum of n over all test cases does not exceed 2*10^5.

Output Format:
For each test case, print a single integer — the answer modulo 998,244,353.

Note:
In the first test case, p=[2,1]. The only suitable q is [1,2]. Indeed, we need to satisfy the inequality q_1neqp_1. It only holds for q=[1,2].

In the second test case, p=[1,2,3]. So q has to satisfy two inequalities: q_1neqp_1 and max(q_1,q_2)neqmax(1,2)=2. One can prove that this only holds for the following 3 permutations:

- q=[2,3,1]: in this case q_1=2neq1 and max(q_1,q_2)=3neq2;
- q=[3,1,2]: in this case q_1=3neq1 and max(q_1,q_2)=3neq2;
- q=[3,2,1]: in this case q_1=3neq1 and max(q_1,q_2)=3neq2.. Output only the code with no comments, explanation, or additional text.