1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| int T, m; int w[105], v[105]; int f[105][105];
int main() { cin >> T >> m; memset(f, 0, sizeof(f)); for (int i = 1; i <= m; i++) cin >> w[i] >> v[i];
for (int i = 1; i <= m; i++) { for (int j = T; j >= 0; j--) { if (j >= w[i]) { f[i][j] = max(f[i - 1][j], f[i - 1][j - w[i]] + v[i]); } else { f[i][j] = f[i - 1][j]; } } }
cout << f[m][T] << endl; return 0; }
|