zoj 3384 Yuyuko and Youmu
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3384
#include <stdio.h>
#define MAXN 1002
int n;
struct node
{
int need,most,remained;
int prepare;
};
node day[MAXN];
int main()
{
while(scanf("%d",&n)!=EOF)
{
int i,j;
for(i=0; i<n; i++)
{
scanf("%d",&day[i].need);
}
for(i=0; i<n; i++)
{
scanf("%d",&day[i].most);
day[i].remained=day[i].most-day[i].need;
if(day[i].remained>=0) day[i].prepare=day[i].need;
else day[i].prepare=day[i].most;
}
bool ok=true;
for(i=0; i<n; i++)
{
if(day[i].remained<0)
{
int t=-day[i].remained;
for(j=i-1; j>=0; j--)
{
if(day[j].remained>=t)
{
day[j].prepare+=t;
day[j].remained-=t;
t=0;
break;
}
else
{
day[j].prepare+=day[j].remained;
t-=day[j].remained;
day[j].remained=0;
}
}
if(t>0)
{
ok=false;
break;
}
else
day[i].remained=0;
}
}
if(!ok) printf("Myon\n");
else
{
bool first=true;
for(i=0; i<n; i++)
{
if(first)
{
first=false;
printf("%d",day[i].prepare);
}
else printf(" %d",day[i].prepare);
}
printf("\n");
}
}
return 0;
}
浙公网安备 33010602011771号