UVa 13007 D as in Daedalus Latin America Regional Contest 2015

来源:互联网 发布:outdoorvoices淘宝 编辑:程序博客网 时间:2024/06/06 02:51

因为每一个round都有五个牌,直接贪心找最大的牌。

#include<iostream>#include<cstring>#include<stdio.h>#include<stdlib.h>#include<queue>using namespace std;//UVA 13007 - D as in Daedalusconst int maxn=60;int N;int M;int budget[maxn];int card[maxn][maxn];int remain[maxn];int value[]={1,10,100,1000,10000};int prevalue;int curvalue;int main(){    freopen("input.txt","r",stdin);//    freopen("myall.out","w",stdout);    while(scanf("%d %d",&N,&M)!=EOF)    {        memset(budget,0,sizeof(budget));        memset(card,0,sizeof(card));        memset(remain,0,sizeof(remain));        prevalue=0;        curvalue=0;        for(int i=1;i<=M;i++)        {            scanf("%d",&budget[i]);            //remain[i]=budget[i];            for(int j=1;j<=N;j++)            {                scanf("%d",&card[i][j]);                if(j>1) remain[i]+=card[i][j];            }            if(remain[i]+card[i][1]<=budget[i]) prevalue+=card[i][1];        }        for(int i=1;i<=M;i++)        {            if(remain[i]>=budget[i]) continue;            for(int j=4;j>=0;j--)            {                if(value[j]+remain[i]<=budget[i])                {                    curvalue+=value[j];                    break;                }            }        }        printf("%d\n",curvalue-prevalue);    }}


0 0
原创粉丝点击