#include <iostream>
using namespace std;
const int N = 100 + 10,V = 200 + 10;
int d[N][V];
int n,c,v[N],w[N];
int main(){
cin >> c >> n;
for(int i = 1;i <= n;i ++) cin >> v[i] >> w[i];
for(int i = 1;i <= n;i ++){
for(int j = 1;j <= c;j ++){
if(v[i] <= j){
d[i][j] = max(d[i - 1][j],w[i] + d[i - 1][j - v[i]]);
}else
d[i][j] = d[i - 1][j];
}
}
cout << d[n][c] << endl;
return 0;
}
采药这道题
给一个反例