题目链接:http://poj.org/problem?id=1017
不解释,贪心思路,可以留言讨论。
#include<stdio.h>
#include<cmath>
using namespace std;
int num[4]= {0,5,3,1};
int main()
{
int a1,a2,a3,a4,a5,a6,ans1,ans2,ans3,ans4,ans5,ans6;
while(~scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6))
{
if(!a1&&!a2&&!a3&&!a4&&!a5&&!a6)
break;
int ans=0,ans6=a6,ans5=a5,ans4=a4;
ans3=ceil(1.0*a3/4);
int shengyu2=num[a3%4]+(ans4*36-a4*16)/4;
if(shengyu2>=a2)
ans2=0;
else
ans2=ceil((a2-shengyu2)*1.0/9);
ans+=ans2+ans3+ans4+ans5+ans6;
int shengyu1=ans*36-a2*4-a3*9-a4*16-a5*25-a6*36;
if(shengyu1>=a1)
ans1=0;
else
ans1=ceil((a1-shengyu1)*1.0/36);
ans+=ans1;
printf("%d\n",ans);
}
return 0;
}