非正解,只是想练练回溯,但是样例都没过
#include<iostream>
using namespace std;
int t,m,ans;
int a[105],b[105];
void dfs(int x,int y){
if(y>m){
return;
}
if(x-a[y]>=0){
ans+=b[y];
dfs(x-a[y],y+1);
ans-=b[y];
}
dfs(x,y+1);
}
int main(){
cin >> t >> m;
for(int i=1;i<=m;i++){
cin >> a[i] >> b[i];
}
dfs(t,1);
cout << ans;
return 0;
}