Pagini recente » Cod sursa (job #2710794) | Cod sursa (job #914177) | Cod sursa (job #2772526) | Cod sursa (job #2276903) | Cod sursa (job #128194)
Cod sursa(job #128194)
#include<stdio.h>
int a[50001],s[50001],n,m,x,i,j,v[1001];
int poz(int st,int dr)
{int x=0,y=-1,aux;
while(st<dr)
{if(v[st]>v[dr])
{aux=x;x=-y;y=-aux;
aux=v[st];v[st]=v[dr];v[dr]=aux;}
st=st+x;dr=dr+y;}
return st;}
void sort(int st,int dr)
{if(st>=dr) return;
int k=poz(st,dr);
sort(st,k-1);
sort(k+1,dr);}
int main()
{freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&v[i]);
sort(1,n);
for(i=1;i<=n;i++)
{x=v[i];
if(a[x]) continue;
a[x]=1;
for(j=1;j<=50000-x;j++) if(a[j]) a[j+x]=1;
s[++m]=x;}
printf("%d\n",m);
for(i=1;i<=m;i++)
printf("%d\n",s[i]);
fclose(stdout);
return 0;}