Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
35434 | 陈柏诚 | 采药 | C++ | 运行出错 | 83 | 0 MS | 688 KB | 602 | 2021-12-15 13:45:41 |
#include <iostream> #include <cassert> using namespace std; int tt[200]; int vv[200]; int dp[1005][105]; int main () { int T, M; cin >> T >> M; assert(1 <= T && T <= 1000); assert(1 <= M && M <= 100); int i, j; for (i = 1; i <= M; i++) { cin >> tt[i] >> vv[i]; assert(1 <= tt[i] && tt[i] <= 100); assert(1 <= vv[i] && vv[i] <= 100); } for (i = 1; i <= T; i++) { for (j = 1; j <= M; j++) { int a = dp[i][j - 1]; if (i >= tt[j]) { int b = dp[i - tt[j]][j - 1] + vv[j]; if (b > a) a = b; } dp[i][j] = a; } } cout << dp[T][M] << endl; {char c;assert(!(cin >> c));} return 0; }