分析: 动态转移方程dp[i] = max{dp[i], dp[i-w[i]] - v[i]}
/**
* 题目: 洛谷OJ P1048 采药
* 题型: 01背包
**/
#include <cstdio>
#include <iostream>
using namespace std;
const int maxn = 1000+10;
int N, W, dp[maxn], t1, t2;
int main() {
cin >> W >> N;
for(int i = 1; i <= N; i++) {
cin >> t1 >> t2;
for(int j = W; j >= t1; j--) {
dp[j] = max(dp[j], dp[j-t1]+t2);
}
}
cout << dp[W];
return 0;
}