F-所有子序列背包问题
给定一个长度为N的整数序列 A1, A2, …, AN 和一个正整数S。
对于一个整数对(L,R),满足1≤L≤R≤N,定义f(L,R)如下:
f(L,R)是满足条件 L≤x1<x2<⋯<xk<R 和 Ax1+Ax2+⋯+Axk=S的整数序列(x1,x2,…,xk)的数量。
求所有满足1≤L≤R≤N的整数对(L,R)的f(L,R)的总和。由于这个总和可能很大,对998244353取模后输出。
限制条件
- 输入中的所有值都是整数。
- 1≤N≤3000
- 1≤S≤3000
- 1≤Ai≤3000
输入
输入以以下格式从标准输入给出。
N S
A1 A2 ... AN
输出
输出f(L,R)的总和,对998244353取模
输入样例1
3 4
2 2 4
输出样例1
5
f(L,R)的值如下,总和为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))
输入样例2
5 8
9 9 9 9 9
输出样例2
0
输入样例3
10 10
3 1 4 1 5 9 2 6 5 3
输出样例3
152