时间限制:1000ms
空间限制:512MB
问题描述
给定长度为 n 的正整数序列 a,小 Z 给出了以下函数:
cpp
void mod(int x){
for(int i=1;i<=n;i++) a[i]=a[i]%x;
}
你可以执行这个函数任意次,且每次调用函数的参数可以任意指定,但要求调用的参数 x 为正整数,请问最终可以得到多少种不同的 a 序列,答案对 998244353 取模。
输入格式
输入第一行,包含 1 个正整数 n。
第二行给定长度为 n 的正整数序列 a。
输出格式
输出一个整数,表示答案,答案对 998244353 取模。
样例输入1
样例输出1
样例解释
合法解有 [6,5],[2,1],[1,0],[0,5],[0,2],[0,1],[0,0]。
样例输入2
样例输出2
样例输入3
input
20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
样例输出3
样例输入4
input
11
11 451 419 198 10 114 51 41 9 198 10
样例输出4
评测数据规模
| 测试点编号 |
n |
ai |
特殊性质 |
| 1 |
≤2 |
≤500 |
无 |
| 2,3 |
≤500 |
≤20 |
无 |
| 4,5,6,7,8 |
≤500 |
≤500 |
A |
| 9,10 |
≤500 |
≤500 |
无 |
特殊性质 A : 保证 1≤i≤n 有 ai=i。