Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
151908 | 陈家宝 | 收服精灵 | C++ | 通过 | 100 | 0 MS | 328 KB | 480 | 2024-06-20 12:52:55 |
#include <bits/stdc++.h> using namespace std; int M,K,n,Max=-1,dp[1050][700],m[1050],k[1050]; int main(){ scanf("%d%d%d",&M,&K,&n); for(int i=1; i<=n; i++)scanf("%d%d",&m[i],&k[i]); for(int i=1; i<=n; i++)for(int j=M; j>=m[i]; j--)for(int p=K; p>=k[i]; p--)dp[j][p]=max(dp[j][p],dp[j-m[i]][p-k[i]]+1); int Ans=K; for(int i=0; i<=K; i++) if(dp[M][i]>Max){ Max=dp[M][i]; Ans=K-i; } printf("%d %d\n",Max,Ans); return 0; }