6465: 背包问题(backpack)

内存限制:256 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:0 通过:0

题目描述

编程达人聚会进入尾声,有来自柯桥和上虞的两位同学收拾背包准备回家,越城区的好友想要挽留他们,就说: “我还有个问题没解决呢!你们帮我解决了才能回家,不然就只能回我家啦! 

给定n个物品和一个整数s,第i个物品的体积是a[i],定义f(l,r)表示在第1个物品到第r个物品中选出若干个物品的方案数,使得这些物品的体积之和为s。两种方案被视为不同的,当且仅当存在一个i,使得第i个物品只在其中一个方案中被选中。

你需要求出对于所有1<=l<=r<=n,f(l, r)的和。由于答案可能很大,你只需要输出答案对998244353取模的结果。

输入格式

第一行两个整数n和s,第二行n个整数a[i]。

输出格式

一行一个整数,表示答案。


输入#1
3 4
2 2 4
输入#2
10 10
3 1 4 1 5 9 2 6 5 3
提示


对于所有数据,1<=n,s,a[i]<=3000。
输出#1
5
输出#2
152




输入样例 复制

3 4
2 2 4

输出样例 复制

5