提交时间:2024-05-05 08:57:30

运行 ID: 145453

#include<bits/stdc++.h> using namespace std; int dp[10005],E,F,T,W,N,v[505],w[505]; int main() { cin>>T; for (int k=1;k<=T;k++) { cin>>E>>F>>N; W=F-E; for (int i=0;i<N;i++) cin>>v[i]>>w[i]; dp[0]=0; for (int i=1;i<=W;i++) dp[i]=1e9; for (int i=0;i<N;i++) { for (int j=w[i];j<=W;j++) { dp[j]=min(dp[j],dp[j-w[i]]+v[i]); } } if (dp[W]<1e9) cout<<"The minimum amount of money in the piggy-bank is "<<dp[W]<<".\n"; else cout<<"This is impossible."; } return 0; }