「KDOI-03」构造数组

题目描述

你现在有一个长度为 $n$ 的数组 $a$。一开始,所有 $a_i$ 均为 $0$。给出一个同样长度为 $n$ 的目标数组 $b$。求有多少种方案,使得通过若干次以下操作,可以让 $a$ 数组变成 $b$。 * 选出两个**不同的**下标 $1\leq i<j\leq n$,并将 $a_i$ 和 $a_j$ 同时增加 $1$。 两种方案被称之为不同的,当且仅当存在一个 $x$ 使得一种方案中第 $x$ 次操作选择的两个下标 $(i,j)$ 与另一种方案中的不同。 **答案对 $\bm{998244353}$ 取模。**

输入输出格式

输入格式


从标准输入读入数据。 输入数据一共包含两行。 第一行包含一个正整数 $n$。 第二行包含 $n$ 个正整数,表示 $b_1,b_2,\ldots,b_n$。

输出格式


输出到标准输出。 输出一行一个正整数,表示将 $a$ 数组通过若干次操作变成 $b$ 数组的方案数对 $998244353$ 取模后的结果。

输入输出样例

输入样例 #1

4
2 2 2 2

输出样例 #1

90

说明

**【样例 1 解释】** | 种类编号 | 第一组 | 第二组 | 第三组 | 第四组 | 方案数 | | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: | | $1$ | `1<->2` | `1<->2` | `3<->4` | `3<->4` | $\binom{4}{2}=6$ | | $2$ | `1<->3` | `1<->3` | `2<->4` | `2<->4` | $\binom{4}{2}=6$ | | $3$ | `1<->4` | `1<->4` | `2<->3` | `2<->3` | $\binom{4}{2}=6$ | | $4$ | `1<->2` | `1<->4` | `2<->3` | `3<->4` | $4!=24$ | | $5$ | `1<->2` | `1<->3` | `2<->4` | `3<->4` | $4!=24$ | | $6$ | `1<->3` | `1<->4` | `2<->3` | `2<->4` | $4!=24$ | 总方案数是 $6\times3+24\times3=90$。 **【样例 2】** 见选手文件中的 `array/array2.in` 与 `array/array2.ans`。 此样例满足测试点 $6\sim8$ 的限制。 **【样例 3】** 见选手文件中的 `array/array3.in` 与 `array/array3.ans`。 此样例满足测试点 $12\sim14$ 的限制。 **【样例 4】** 见选手文件中的 `array/array4.in` 与 `array/array4.ans`。 此样例满足测试点 $15\sim18$ 的限制。 **【样例 5】** 见选手文件中的 `array/array5.in` 与 `array/array5.ans`。 此样例满足测试点 $19\sim20$ 的限制。 **【样例 6】** 见选手文件中的 `array/array6.in` 与 `array/array6.ans`。 此样例满足测试点 $21\sim22$ 的限制。 **【样例 7】** 见选手文件中的 `array/array7.in` 与 `array/array7.ans`。 此样例满足测试点 $23\sim25$ 的限制。 *** **【数据范围】** 对于 $100\%$ 的数据,$1\le n\le5~000$,$1\leq b_i\le30~000$,$\sum b_i\le30~000$。 | 测试点编号 | $n$ | $\sum b_i$ | | :----------: | :----------: | :----------: | | $1$ | $\leq5~000$ | $\equiv 1\pmod 2$ | | $2\sim3$ | $=1$ | $\leq30~000$ | | $4\sim5$ | $=2$ | $\leq30~000$ | | $6\sim8$ | $\leq5$ | $\leq8$ | | $9\sim11$ | $\leq20$ | $=n$ | | $12\sim14$ | $\leq 5~000$ | $=n$ | | $15\sim18$ | $\leq16$ | $\leq16$ | | $19\sim20$ | $\le 700$ | $\le700$ | | $21\sim22$ | $\le 5~000$ | $\le5~000$ | | $23\sim25$ | $\le5~000$ | $\le30~000$ |