您的位置:首页 > 其它

UVa 13007 D as in Daedalus Latin America Regional Contest 2015

2016-06-17 17:26 330 查看
因为每一个round都有五个牌,直接贪心找最大的牌。

#include<iostream>
#include<cstring>
#include<stdio.h>
#include<stdlib.h>
#include<queue>
using namespace std;
//UVA 13007 - D as in Daedalus
const 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: