Pagini recente » Cod sursa (job #1254474) | Cod sursa (job #1876880) | Cod sursa (job #977482) | Cod sursa (job #2790431) | Cod sursa (job #153820)
Cod sursa(job #153820)
#include <stdio.h>
# define N 1128
#define M 50128
int rez[N],v[N];
int val[M];
int main()
{
int r=0,n,i,j;
int inj,gata,aux;
freopen("economie.in", "r",stdin);
freopen("economie.out", "w",stdout);
scanf("%d", &n);
for(i=1;i<=n;++i)
scanf("%d", &v[i]);
inj=n; while(inj>1)
{inj/=2; do{gata=1;
for(i=1;i<=n-inj;i++)
if(v[i]>v[i+inj])
{aux=v[i]; v[i]=v[i+inj];
v[i+inj]=aux; gata=0;}
}while(!gata); }
val[0]=1;
for(i=1;i<=n;++i)
{
if(!val[v[i]])
{
for(j=0;j<M-v[i];++j)
if(val[j])
val[j+v[i]]=1;
rez[++r]=v[i];
}
}
printf("%d\n", r);
for(i=1;i<=r;++i)
printf("%d\n", rez[i]);
return 0;
}