Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
146519 | 吴悠 | 储钱罐 | C++ | 通过 | 100 | 2 MS | 304 KB | 606 | 2024-05-12 10:34:31 |
#include<iostream> #include<cstring> using namespace std; int p[501],w[501],dp[10001]; int main(){ int t; cin>>t; for(int k=1;k<=t;k++){ memset(dp,0x3f,sizeof(dp)); dp[0]=0; int e,f,n,m; cin>>e>>f; m=f-e; cin>>n; for(int i=1;i<=n;i++){ cin>>p[i]>>w[i]; } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(j>=w[i]){ dp[j]=min(dp[j],dp[j-w[i]]+p[i]); } } } if(dp[m]!=0x3f3f3f3f){ cout<<"The minimum amount of money in the piggy-bank is "<<dp[m]<<"."; cout<<endl; } else cout<<"This is impossible."<<endl; } return 0; }