傳送門
#include <iostream>
using namespace std;
#define MAXN 100+10
#define MAXM 10000+10
int a[MAXN] = { 0 };
int dp[MAXM] = { 0 };//dp[i]表示花光i元的方案數
int main(){
int N, M;
cin >> N >> M;
for(int i = 1; i <= N; i++)
cin >> a[i];
dp[0] = 1;
for (int i = 1; i <= N; i++)
for (int j = M; j >= a[i]; j--)
dp[j] = dp[j] + dp[j - a[i]];//不選+選
cout << dp[M];
return 0;
}