Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
147644 | 吴松韬 | 收服精灵 | C++ | 通过 | 100 | 0 MS | 300 KB | 508 | 2024-05-18 17:07:59 |
#include<bits/stdc++.h> using namespace std; int n,m,k; int z[505],h[505],f[1005][505]; int main(){ cin>>n>>m>>k; for(int i=1;i<=k;i++)cin>>z[i]>>h[i]; for(int i=1;i<=k;i++){ for(int j=n;j>=z[i];j--){ for(int k=m;k>=h[i];k--){ f[j][k]=max(f[j][k],f[j-z[i]][k-h[i]]+1); } } } int ans=0,ah=m; for(int i=0;i<=n;i++){ for(int j=0;j<=m;j++){ if(ans<f[i][j]){ ans=f[i][j];ah=m; }else if(ans==f[i][j] and ah>j){ ah=j; } } } cout<<ans<<" "<<m-ah; }