提交时间:2024-05-18 17:07:59

运行 ID: 147644

#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; }