给定一个长度为 N 的整数序列 A_1, A_2, \ldots, A_N 和一个正整数 S。
对于所有满足 1 \leq L \leq R \leq N 的整数对 (L, R),定义 f(L, R) 如下:
- f(L, R) 表示满足 L \leq x_1 < x_2 < \cdots < x_k \leq R 且 A_{x_1} + A_{x_2} + \cdots + A_{x_k} = S 的整数序列 (x_1, x_2, \ldots, x_k) 的个数。
请计算所有满足 1 \leq L \leq R \leq N 的整数对 (L, R) 的 f(L, R) 之和。由于答案可能非常大,请输出其对 998244353 取模的结果。
第一行两个数字N,S分别表示序列长度和求的和;
接下来N个数字A_i;
输出所有 f(L, R) 之和对 998244353 取模的结果。
3 4 2 2 4
5
5 8 9 9 9 9 9
0
10 10 3 1 4 1 5 9 2 6 5 3
152
限制条件
20%的数据保证:1 \leq N \leq 20,1 \leq S \leq 30,1 \leq A_i \leq 10;
40%的数据保证:1 \leq N \leq 40,1 \leq S \leq 100,1 \leq A_i \leq 100;
60%的数据保证:1 \leq N \leq 80,1 \leq S \leq 1000,1 \leq A_i \leq 1000;
100%的数据保证:1 \leq N \leq 3000,1 \leq S \leq 3000,1 \leq A_i \leq 3000;
样例解释 1
可以分别计算如下,和为 5。
- f(1,1) = 0
- f(1,2) = 1(仅有 (1, 2) 这一种情况)
- f(1,3) = 2((1, 2) 和 (3) 两种情况)
- f(2,2) = 0
- f(2,3) = 1(仅有 (3) 这一种情况)
- f(3,3) = 1(仅有 (3) 这一种情况)