本蒟蒻打了一个自认为对的代码,可是交上去40分,请大佬们帮忙看看哪里错了
#include<iostream>
#include<queue>
using namespace std;
int n,m,a[30005],ans=-9999;
void dfs(int k,int v){
if(k==m+1){
if(v>ans) ans=v;
return;
}
if(v+a[k]<=m) dfs(k+1,v+a[k]);
else dfs(k+1,v);
}
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
dfs(2,a[1]);
cout<<m-ans;
}
感谢!