poj1384

来源:互联网 发布:c语言如何清屏 编辑:程序博客网 时间:2024/06/10 14:41
#include<iostream>#include<stdio.h>#include<string.h>#include<cmath>#include<algorithm>using namespace std;int w[10010];int p[10010];int main(){    int ca,n,weight,value,i,j,m;    scanf("%d",&ca);    while(ca--)    {        scanf("%d%d",&weight,&value);        m=value-weight;        scanf("%d",&n);        memset(w,0,sizeof(w));        memset(p,0,sizeof(p));        while(n--)        {            scanf("%d%d",&value,&weight);            for(i=weight;i<=m;i++)            {                if(w[i]<w[i-weight]+weight)                {                    w[i]=w[i-weight]+weight;                    p[i]=p[i-weight]+value;                }                else if(w[i]==w[i-weight]+weight)                {                    p[i]=min(p[i],p[i-weight]+value);                }            }        }        if(w[m]==m)          printf("The minimum amount of money in the piggy-bank is %d.\n",p[m]);        else          printf("This is impossible.\n");    }}

原创粉丝点击