配点 : 600 点
問題文
長さ N の正整数列 A1, A2, …, AN と正の整数 S が与えられます。
集合{1,2,…,N} の空でない部分集合 T について、f(T) を以下のように定めます。
- T の空でない部分集合 {x1,x2,…,xk} であって、 Ax1+Ax2+⋯+Axk=S をみたすものの個数
T として考えられる集合は 2N−1 通りありますが、そのすべてに対する f(T) の和を求めてください。ただし、答えは非常に大きくなることがあるので、998244353 で割ったあまりを出力してください。
制約
- 入力は全て整数である。
- 1≤N≤3000
- 1≤S≤3000
- 1≤Ai≤3000
入力
入力は以下の形式で標準入力から与えられる。
N S
A1 A2 ... AN
出力
f(T) の和を 998244353 で割ったあまりを出力せよ。
3 4
2 2 4
6
それぞれ以下のように計算できて、その和は 6 です。
- f({1})=0
- f({2})=0
- f({3})=1 ( {3} の 1 つ)
- f({1,2})=1 ( {1,2} の 1 つ)
- f({2,3})=1 ( {3} の 1 つ)
- f({1,3})=1 ( {3} の 1 つ)
- f({1,2,3})=2 ( {1,2},{3} の 2 つ)
5 8
9 9 9 9 9
0
10 10
3 1 4 1 5 9 2 6 5 3
3296