Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
148390 | 王容宇 | 收服精灵 | C++ | 解答错误 | 40 | 0 MS | 328 KB | 566 | 2024-05-23 21:36:58 |
#include <bits/stdc++.h> using namespace std; int num[1001][1001]; int maxm; int n, V, M; int main() { cin >> V >> M >> n; M/=10; for(int i = 1; i<=n; i++) { int v, m; cin >> v >> m; m/=10; for(int j = V; j>=v; j--) { for(int k = M; k>=m; k--) { if(num[j][k]==num[j-v][k-m]+1) { maxm=max(maxm, k-m); continue; } num[j][k]=max(num[j][k], num[j-v][k-m]+1); if(num[j][k]==num[j-v][k-m]+1) { maxm=k-m; } } } } cout << num[V][M] << " " << maxm*10 << endl; return 0; }