代码:
[cpp]
<span style=“font-family:FangSong_GB2312;font-size:18px;”>
#include<iostream>
using namespace std;
int f[1200005];
int c ;
int main()
{
int i,j,k,t=1,cnt,sum,mount;
while(1)
{
cnt=0;
for(i=1;i<=6;i++)
{
scanf(“%d”,&c[i]);
cnt+=c[i]*i;
}
if(cnt==0) {break;}
printf(“Collection #%d:\n”,t++);
if(cnt%2) {printf(“Can't be divided.\n”);printf(“\n”);continue;}
sum=cnt/2;
memset(f,0,sizeof(f));
f[0]=1;
for(i=1;i<=6;i++)
{
mount=c[i];
for(k=1;k<=mount;k《=1)
{
for(j=cnt;j>=k*i;j--)
f[j]+=f[j-k*i];
mount-=k;
}
if(mount)
for(j=cnt;j>=mount*i;j--) f[j]+=f[j-mount*i];
}
if(f[sum]) printf(“Can be divided.\n”);
else printf(“Can't be divided.\n”);
printf(“\n”);
}
return 0;
}
</span>