前5个AC,后面TLE!
#include <cstdio>
using namespace std;
int n,m,a[123],cnt=0;
bool b[123];
void dfs(int cur,int sum){
if(sum==m){
cnt++;
return;
}
if(cur==n)return;
if(!b[cur]){
b[cur]=1;
dfs(cur+1,sum+a[cur]);
b[cur]=0;
dfs(cur+1,sum);
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
dfs(0,0);
printf("%d",cnt);
return 0;
}