https://www.luogu.org/problemnew/show/P1474
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll ,ll > P;
#define INF 0xf3f3f3f
const int Max=10000+10;
int v,n;
ll dp[Max],a[50];
bool vis[Max];
int main() {
scanf("%d%d",&v,&n);
for(int i=1; i<=v; i++)
scanf("%lld",&a[i]);
memset(dp,0,sizeof dp);
dp[0]=1;
for(int i=1;i<=v;i++)
for(int j=a[i];j<=n;j++)
dp[j]+=dp[j-a[i]];
printf("%lld\n",dp[n]);
return 0;
}