Cod sursa(job #110910)

Utilizator pandaemonAndrei Popescu pandaemon Data 27 noiembrie 2007 23:42:08
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>

int n,cnt=0; long v[1001],sol2[1001],i,j,max;
bool sol[50001];


int sortare()
{long aux; bool ad=1;
while(ad==1)
{ad=0;
for(i=1;i<n;i++) if(v[i]>v[i+1])
		 {ad=1; aux=v[i]; v[i]=v[i+1]; v[i+1]=aux;}  }
}



int update()
{long var=v[i];
for(j=var+1;j<=v[n];j++)
if(sol[j-var]==1) sol[j]=1;}


int algoritm()
{for(i=1;i<=n;i++)
 if(sol[v[i]]==0) {cnt++; sol2[cnt]=v[i]; sol[v[i]]=1;
		   update();}
}


int main()
{freopen("economie.in","r",stdin);
 freopen("economie.out","w",stdout);

 scanf("%d",&n);
 for(i=1;i<=n;i++) scanf("%ld",&v[i]);

 sortare();

 algoritm();

 printf("%d\n",cnt);
 for(i=1;i<=cnt;i++) printf("%ld\n",sol2[i]);

 printf("\n"); }