完全背包方案数
#include <iostream>
using namespace std;
const int N = 10100;
long long f[N], w[30]; // 十年OJ一场空,不开long long见祖宗
int n, m;
long long fanction()
{
f[0] = 1; // 边界注意初始化
for(int i = 1;i <= n;i ++)
for(int j = w[i];j <= m;j ++)
f[j] += f[j - w[i]]; // 状态方程:f[j] = f[j] + f[j - w[i]]
return f[m];
}
int main()
{
cin >> n >> m;
for(int i = 1;i <= n;i ++) cin >> w[i];
cout << fanction() << endl;
return 0;
}