终极母函数 hdu 1079

来源:互联网 发布:淘宝erp 编辑:程序博客网 时间:2024/05/16 10:58
#include<stdio.h>int a[99999];int c1[99999];int c2[99999];int d[99999];int b[99999];int main(){int k,i,j,sum,n;while(scanf("%d",&n)!=EOF){sum=0;for(i=0;i<n;i++){scanf("%d",&a[i]);sum+=a[i];}for(i=0;i<=sum;i++){b[i]=0;c1[i]=0;c2[i]=0;d[i]=0;}for(i=0;i<=1;i++)c1[i*a[0]]=1;for(i=1;i<n;i++){for(j=0;j<=sum;j++)for(k=0;j+k*a[i]<=sum && k<=1; k++)c2[j+k*a[i]]+=c1[j];for(j=0;j<=sum;j++){c1[j]=c2[j];c2[j]=0;}}for(i=sum;i>0;i--){if(c1[i]){for(j=1;j<i;j++)if(c1[j]){b[i-j]=1;}}}k=0;for(i=1;i<=sum;i++)if(c1[i]==0 && b[i]==0 )d[k++]=i;printf("%d\n",k);if(k){for(i=0;i<k-1;i++)printf("%d ",d[i]);printf("%d\n",d[i]);}}return 0;}

原创粉丝点击