
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
long long N,M;
cin>>N>>M;
vector<long long>a(N+10,0);
long long f[N+10][M+10]={1};
for(long long i=1;i<=N;i++) cin>>a[i];
for(long long i=1;i<=N;i++){
for(long long j=1;j<=M;j++){
if(j==a[i]) f[i][j]=f[i-1][j]+1;
else if(j>a[i]) f[i][j]=f[i-1][j]+f[i-1][j-a[i]];
else if(j<a[i]) f[i][j]=f[i-1][j];
}
}
cout<<f[N][M]<<endl;
return 0;
}
有两个WA,求解
