#include<bits/stdc++.h>
using namespace std;
int N,M,a[105],Moss[105],tt,ttn;
bool bj[105];
void dfs(int m){
tt=0;
for(int i=1;i<=m-1;i++){
tt+=Moss[i];
if(tt==M){
ttn++;
return;
}
}
for(int i=1;i<=N;i++){
if(bj[i]){
continue;
}
Moss[m]=a[i];
bj[i]=true;
dfs(m+1);
bj[i]=false;
}
}
int main(){
cin>>N>>M;
for(int i=1;i<=N;i++){
cin>>a[i];
}
dfs(1);
cout<<ttn;
}
使用的是深度优先搜索,但是不知道怎样写标记,求大佬解答