输出结果总是10,蒟蒻求助
#include <bits/stdc++.h>
using namespace std;
int s,p[100000],book[100000];
void f(int n,int w){
if(w==0){
s++;
return;
}
for(int i=n;i>=1;i--){
if(w-p[i]>=0){
if(book[i]==0){
book[i]=1;
f(i-1,w-p[i]);
}
else continue;
}
else continue;
}
s++;
return;
}
int main(){
int w,n;
cin>>w>>n;
for(int i=1;i<=n;i++){
cin>>p[i];
}
sort(p,p+n+1);
f(n,w);
cout<<s;
return 0;
}