提交时间:2024-05-26 11:02:59

运行 ID: 149267

#include<iostream> using namespace std; int dp[1001][501],a[101],b[101]; int main(){ int N,M,K; cin>>N>>M>>K; for(int i=1;i<=K;i++){ cin>>a[i]>>b[i]; } for(int i=1;i<=K;i++){ for(int j=N;j>=a[i];j--){ for(int k=M;k>=b[i];k--){ dp[j][k]=max(dp[j][k],dp[j-a[i]][k-b[i]]+1); } } } int ans=M; for(int i=0;i<=M;i++){ if(dp[N][i]==dp[N][M]){ ans=M-i; break; } } cout<<dp[N][M]<<" "<<ans<<endl; return 0; }