附上源代码:
#include <bits/stdc++.h>
using namespace std;
int n,m,vis[105],ans;
int dfs(int k,int s)
{
if(k>n && s!=0) return 0;
if(s==0) return 1;
return dfs(k+1,s-vis[k])+dfs(k+1,s);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>vis[i];
cout<<dfs(1,m);
return 0;
}