| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
这题我用背包做得..能找到得数据全没问题..一交上去就WA..TT..是不是有什么特殊数据我没考虑到啊?#include <stdio.h>
#include <string.h>
#define maxt 50000
int main()
{
freopen("p1014.in","r",stdin);
int i,j,k,n,sum;
int p[6+1],f[maxt];
n=0;
while(1)
{
sum=0;
for(i=1;i<=6;i++)
{
scanf("%d",&p[i]);
p[i]%=12;
sum+=p[i]*i;
}
if(sum==0)
break;
if(sum%2)
{
printf("Collection #%d:\nCan't be divided.\n\n",++n);
continue;
}
memset(f,0,sizeof(f));
f[0]=1;
for(i=1;i<=6;i++)
for(j=1;j<=p[i];j++)
for(k=sum/2;k>=i*j;k--)
f[k]=f[k] || f[k-i*j];
if(f[sum/2])
printf("Collection #%d:\nCan be divided.\n\n",++n);
else printf("Collection #%d:\nCan't be divided.\n\n",++n);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator