can someone please give me some more data tests...
[cpp]
#include <stdio.h>
int main()
{
int size1,size2,size3,size4,size5,size6;
int max1,max2;
int packets;
while (1)
{
scanf("%d %d %d %d %d %d",&size1,&size2,&size3,&size4,&size5,&size6);
if (!size1 && !size2 && !size3 && !size4 && !size5 && !size6) break;
/* size 6x6 */
packets = size6;
/* size 5x5 */
packets += size5;
max1 = size5*11;
if (size1<= max1)
size1 = 0;
else
size1 -= max1;
/* size 4x4 */
packets += size4;
max2 = size4*5;
if (size2<=max2)
{
max2 -= size2;
size2 = 0;
} else
{
size2 -= max2;
max2 = 0;
}
max1 = 4*max2;
if (size1<=max1)
size1 = 0;
else
size1 -= max1;
/* size 3x3 */
packets += size3 / 4;
size3 %= 4;
if (size3)
{
packets++;
max1 = (4-size3)*9;
if (size3==1)
max2 = 5;
else if (size3==2)
max2 = 3;
else if (size3==1)
max2 = 1;
if (size2<=max2)
{
max2 -= size2;
size2 = 0;
} else
{
size2 -= max2;
max2 = 0;
}
if (size3==1)
max1 -= (5-max2)*4;
else if (size3==2)
max1 -= (3-max2)*4;
else if (size3==3)
max1 -= (1-max2)*4;
if (size1<=max1)
size1 = 0;
else
size1 -= max1;
}
/* size 2x2 */
packets += size2 / 9;
size2 %= 9;
if (size2)
{
packets++;
max1 = 36 - 4*(size2);
if (size1<=max1)
size1 = 0;
else
size1 -= max1;
}
/* size 1x1 */
packets += size1 / 36;
size1 %= 36;
if (size1)
packets++;
printf("%d\n",packets);
}
return 0;
}
[/cpp]
