Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
153485 | 陈家宝 | 收服精灵 | C++ | 通过 | 100 | 0 MS | 316 KB | 467 | 2024-07-03 13:35:21 |
#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",Max,Ans); return 0; }