「SFCOI-3」进行一个列的排

题目背景

![](https://cdn.luogu.com.cn/upload/image_hosting/8v9kbxjs.png) (其实这题原来叫 I must say No,不过出于某些显然的原因就改题目名了 /kk) You must say Yes. (题目背景图片来自 Phigros 曲绘,如有侵权,请告知出题人。)

题目描述

小 R 有一个长度为 $n$ 的排列 $p_1\dots p_n$。换句话说,$p_1\dots p_n$ 包含 $0 \sim (n - 1)$ 之间的数,并且满足对于 $0 \sim (n - 1)$ 这 $n$ 个数,每个数在 $p$ 中出现且仅出现一次。 小 R 有 $n$ 个限制,其中第 $i(0 \leq i \leq n - 1)$ 个用一个![](cnm,shabierLeasier)**正整数** $L_i$ 描述,表示至少有一个长度为 $L_i$ 的区间 $[l, r]$(即 $r - l + 1 = L_i$)满足 $\operatorname{mex}_{k=l}^r p_k = i$。 小 R 丢失了排列 $p_1\dots p_n$,不过幸运的是她仍然记得这 $n$ 条限制。请你帮她求出总共有多少个初始的合法排列,答案对 $998244353$ 取模。

输入输出格式

输入格式


**本题每个测试点有多组数据。** 第一行一个整数 $T$ 表示数据组数。对于每组数据: + 第一行一个整数 $n$。 + 第二行 $n$ 个整数依次表示 $L_0\dots L_{n-1}$。

输出格式


共 $T$ 行,每行一个整数表示答案。

输入输出样例

输入样例 #1

4
4
1 1 3 3
5
2 1 3 3 4
6
1 1 2 5 4 5
10
3 2 3 4 7 6 8 8 8 9

输出样例 #1

4
12
8
96

说明

### 定义 + 一个序列的 $\operatorname{mex}$ 是其中没有出现过的最小非负整数,如 $\operatorname{mex}\{1, 3, 4\} = 0$,$\operatorname{mex}\{0, 1, 1, 2, 5\} = 3$,$\operatorname{mex}\{3, 1, 0, 2\} = 4$。 ### 数据规模与约定 + Subtask 0(10 pts):$n \leq 10$。 + Subtask 1(30 pts):$n \leq 18$。 + Subtask 2(15 pts):$n \leq 300$。 + Subtask 3(45 pts):无特殊限制。 对于所有数据,$1 \leq T \leq 10$,$1 \leq n \leq 5 \times 10^3$,$1 \leq L_i \leq n$。