Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
147667 | 苏唯哲 | 收服精灵 | C++ | 通过 | 100 | 0 MS | 320 KB | 462 | 2024-05-18 17:20:18 |
#include<bits/stdc++.h> using namespace std; int dp[1050][700],m[1050],k[1050]; int main(){ int M,K,N,Max=-1; cin>>M>>K>>N; for(int i=1;i<=N;i++){ cin>>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; } } cout<<Max<<" "<<ans<<endl; }