Pagini recente » Cod sursa (job #1022594) | Cod sursa (job #2131957) | Cod sursa (job #3273959) | Cod sursa (job #580364) | Cod sursa (job #280389)
Cod sursa(job #280389)
#include<stdio.h>
#include<stdlib.h>
FILE *f=fopen("economie.in","r"),
*g=fopen("economie.out","w");
int a[1001],b[50001],i,j,ok,n,p,x,i1;
int fcomp(const void*a,const void*b)
{ return *(int*)a-*(int*)b;
}
int atinse()
{ for(i1=1;i1<=n;i1++) if(!b[a[i1]]) return 0;
return 1;
}
int main()
{ fscanf(f,"%d",&n);
for(i=1;i<=n;i++) fscanf(f,"%d",&a[i]);
qsort(a+1,n,sizeof(int),fcomp);
if(a[1]==1) { fprintf(g,"1\n1\n");
fclose(f);
fclose(g);
return 0;
}
b[0]=1;
ok=1;
for(i=1;i<=n&&ok;i++) { for(j=0;j<a[n]&&ok;j++) if(b[j]&&!b[j+a[i]]) b[j+a[i]]=a[i];
x=atinse();
if(x) ok=0,p=i;
}
fprintf(g,"%d\n",p);
for(i=1;i<=p;i++) fprintf(g,"%d\n",a[i]);
fclose(f);
fclose(g);
return 0;
}