vc上只执行到第四个for循环。poj上报ce。。。。
#include<stdio.h>
int main()
{
int flag,tot,t=1,a1,a2,a3,a4,a5,a6,t1,t2,t3,t4,t5,t6,sum;
while(scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6)!=EOF)
{
tot=a1+2*a2+3*a3+4*a4+5*a5+6*a6;
if(!tot)
break;
if(tot%2==1)
{
printf("Collection #%d:/nCan't be divided./n/n",t++);
continue;
}
else if(tot%2==0)
{
flag=0;
tot/=2;
for(t6=a6;t6>=0;t6--)
{
sum=6*t6;
if(sum==tot)
{
flag=1;
goto end;
}
else if(sum>tot)
continue;
else if(sum<tot)
for(t5=a5;t5>=0;t5--)
{
sum+=5*t5;
if(sum==tot)
{
flag=1;
goto end;
}
else if(sum>tot)
{
sum-=5*t5;
continue;
}
else if(sum<tot)
for(t4=a4;t4>=0;t4--)
{
sum+=4*t4;
if(sum==tot)
{
flag=1;
goto end;
}
else if(sum>tot)
{
sum-=4*t4;
continue;
}
else if(sum<tot)
for(t3=a3;t3>=0;t3--)
{
sum+=3*t3;
if(sum==tot)
{
flag=1;
goto end;
}
else if(sum>tot)
{
sum-=3*t3;
continue;
}
else if(sum<tot)
for(t2=t2;t2>=0;t2--)
{
sum+=2*t2;
if(sum==tot)
{
flag=1;
goto end;
}
else if(sum>tot)
{
sum-=2*t2;
continue;
}
else if(sum<tot)
for(t1=t1;t1>=0;t1--)
{
sum+=t1;
if(sum==tot)
{
flag=1;
goto end;
}
else if(sum>tot)
{
sum-=t1;
continue;
}
}
}
}
}
}
}
}
end:
if(flag==1)
printf("Collection #%d:/nCan be divided./n/n",t++);
else if(flag==0)
printf("Collection #%d:/nCan't be divided./n/n",t++);
}
return 0;
}