#include<stdio.h>
#include<iostream>
#include<cstring>
#include<algorithm>
const int INF=0x3f3f3f3f;//最大值
using namespace std;
typedef long long ll;
int p[502];
int w[502];
int dp[10005];
int main()
{
int t;
cin>>t;
while(t--)
{
int e,f,n;
cin>>e>>f;
cin>>n;
for(int i=1;i<=n;i++) {
cin>>p[i]>>w[i];
}
memset(dp,INF,sizeof(dp));
dp[0]=0;
for(int i=1;i<=n;i++)
for(int j=w[i];j<=f-e;j++) dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
if(dp[f-e]!=INF)
cout<<"The minimum amount of money in the piggy-bank is "<<dp[f-e]<<"."<<endl;
else
cout<<"This is impossible."<<endl;
}
return 0;
}
HDOJ 1114 piggy-bank
最新推荐文章于 2023-09-11 16:49:05 发布