HDU 1114

#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;
#define INF 0x7ffffff
#define maxn 10000+5

int dp[maxn];
int T,n,w1,w2,P,W;

int main()
{
    cin>>T;
    while(T--)
    {
        cin>>w1>>w2;
        for(int i=1; i<=w2-w1; i++)
            dp[i]=INF;
            dp[0]=0;
            //cout<<dp[1]<<endl;
        cin>>n;
        for(int i=0; i<n; i++)
        {
            cin>>P>>W;
            for(int i=W; i<=w2-w1; i++)
                dp[i]=min(dp[i-W]+P,dp[i]);
        }
        if(dp[w2-w1]==INF) cout<<"This is impossible.\n";
        else cout<<"The minimum amount of money in the piggy-bank is "<<dp[w2-w1]<<"."<<endl;
        ///cout<<endl;
    }
}

你可能感兴趣的:(ACM,HDU)