提交时间:2024-05-05 10:21:32
运行 ID: 145486
#include<bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; int dp[10001]; int w[501],v[501]; int main() { int t; cin>>t; while(t--) { memset(dp,INF,sizeof(dp)); memset(w,0,sizeof(w)); memset(v,0,sizeof(v)); int m0,m,n; cin>>m0>>m>>n; m-=m0; for(int i=1;i<=n;i++) cin>>v[i]>>w[i]; dp[0]=0; for(int i=1;i<=n;i++) for(int j=w[i];j<=m;j++) if(dp[j-w[i]]!=INF) dp[j]=min(dp[j],dp[j-w[i]]+v[i]); if(dp[m]!=INF) cout<<"The minimum amount of money in the piggy-bank is "<<dp[m]<<'.'<<endl; else cout<<"This is impossible."<<endl; } return 0; }