附上源代码:
#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;
}