题目描述
给定一个长度为 N 的数列 A=(A1,A2,…,AN),其中每个 Ai 是 1 到 N 之间的整数。
请你计算满足以下条件的长度为 N 的数列 B=(B1,B2,…,BN) 的个数,其中每个 Bi 是 1 到 N 之间的整数,并将结果对 998244353 取模:
- 对于每个 i=1,2,…,N,数列 B 中数字 i 出现的次数不超过 Ai。
- 对于每个 i=1,2,…,N,数列 B 中数字 Bi 出现的次数不超过 Ai。
输入格式
输入以如下格式从标准输入读入:
N A1 A2 … AN
输出格式
请输出答案。
样例 1
输入
3
1 2 3
输出
10
样例 2
输入
4
4 4 4 4
输出
256
样例 3
输入
5
1 1 1 1 1
输出
120
样例 4
输入
14
6 5 14 3 6 7 3 11 11 2 3 7 8 10
输出
628377683
说明/提示
限制条件
- 1≤N≤500
- 1≤Ai≤N
- 输入的所有数均为整数
样例解释 1
满足条件的数列共有 10 个:
- (1,2,2)
- (1,2,3)
- (1,3,2)
- (1,3,3)
- (2,1,3)
- (2,3,1)
- (2,3,3)
- (3,1,2)
- (3,2,1)
- (3,2,2)
样例解释 2
满足条件的数列是所有由 1 到 4 组成的长度为 4 的数列,共有 44=256 个。
样例解释 3
满足条件的数列是将 (1,2,3,4,5) 全排列得到的所有数列,共有 5!=120 个。
样例解释 4
请输出个数对 998244353 取模的结果。
由 ChatGPT 4.1 翻译