Packets
64-bit integer IO format: %lld Java class name: Main
Input
Output
Sample Input
0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0
Sample Output
2 1
Source
#include <iostream>
#include <cstdio>
using namespace std;
int num[7];
int main()
{
for(int i=1;i<=6;i++)
scanf("%d",&num[i]);
while(1)
{
bool over=true;;
for(int i=1;i<=6;i++)
if(num[i]) over=false;
if(over) break;
int cnt=0;
for(int i=6;i>=1;i--)
{
int rest=0,rest2,n3,n2;
switch(i)
{
case 6:
if(!num[i]) break;
cnt+=num[i];
break;
case 5:
if(!num[i]) break;
cnt+=num[i];
if(num[1]>num[i]*11)
num[1]-=num[i]*11;
else
num[1]=0;
break;
case 4:
if(!num[i]) break;
cnt+=num[i];
if(num[2]>num[i]*5)
{
num[2]-=num[i]*5;
rest=0;
}
else
{
rest=(num[i]*5-num[2])*4;
num[2]=0;
}
if(rest)
{
if(num[1]>=rest)
num[1]-=rest;
else
num[1]=0;
}
break;
case 3:
if(!num[i]) break;
n3=num[i]/4;
if(num[i]%4)
{
n3++;
rest=(4-(num[i]%4));
}
cnt+=n3;
if(rest)
{
if(rest==1) rest2=1;
else if(rest==2) rest2=3;
else if(rest==3) rest2=5;
int tr=0;
if(num[2]>=rest2)
{
tr=rest*9-rest2*4;
num[2]-=rest2;
}
else
{
tr=rest*9-(rest2-num[2])*4;
num[2]=0;
}
if(num[1]>=tr)
num[1]-=tr;
else
num[1]=0;
}
break;
case 2:
if(!num[i]) break;
n2=num[i]/9;
if(num[i]%9)
n2++;
cnt+=n2;
if(num[i]%9)
{
rest=(9-num[i]%9)*4;
if(num[1]>=rest)
num[1]-=rest;
else
num[1]=0;
}
break;
case 1:
if(!num[i]) break;
cnt+=num[1]/36;
if(num[1]%36)
cnt++;
break;
}
}
printf("%d\n",cnt);
for(int i=1;i<=6;i++) scanf("%d",&num[i]);
}
return 0;
}