提交时间:2024-05-05 09:02:33

运行 ID: 145459

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