[code=Cpp width=700px]#include <stdio.h>
int f[201][8001];
int main()
{
int n,a[201],sum=0,mid,midn,i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
sum+=a;
}
f[0][0]=1;
midn = n / 2;
for(i=1;i<=n;i++)
for(j=midn;j>=0;j--)
for(k=40*j;k>=0;k--)
{
if(f[j][k]==1)
f[j+1][k+a]=1;
}
mid=sum / 2;
for(i=mid;i>=0;i--)
{
if(f[midn]==1)
{
printf("%d %d",i,sum-i);
break;
}
}
printf("\n------------------------\n");
printf("0 1 2 3 4 5 6 7 8 9 10\n");
for(i=1;i<=n;i++)
{
for(j=0;j<=10;j++)
{
printf("%d ",f[j]);
}
printf("\n");
}
getchar();
getchar();
return 0;
}
[/code]
|