代码:
#include<iostream>
using namespace std;
int n,m;
int a[100000];
int ans = 0,sum = 0;
void dfs(int k){
if(k > n && sum == m){
ans++;
return;
}else if(k > n) return;
else{
for(int i = 1;i<=2;i++){
if(i == 1){
if(sum + a[k] <= m){
sum += a[k];
dfs(k+1);
sum -= a[k];
}
}else{
dfs(k+1);
}
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i = 1;i<=n;i++) scanf("%d",&a[i]);
dfs(1);
printf("%d",ans);
return 0;
}