Cod sursa(job #235808)
| Utilizator | Data | 25 decembrie 2008 21:59:28 | |
|---|---|---|---|
| Problema | Economie | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<stdio.h>
#include<algorithm
FILE *f=fopen("economie.in","r"),*g=fopen("economie.out","w");
unsigned short v[50005];long a[1005],max,aux[1005],nr,j,i,n;
int main()
{
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&a[i]),max=max>a[i]?max:a[i];
sort(a+1,a+n+1);
for(i=1;i<=n;i++)
if(v[a[i]]==0)
{
nr++;
aux[nr]=a[i];
v[a[i]]=1;
for(j=a[i]+1;j<=max;j++)
if(v[j-a[i]])
v[j]=1;
}
fprintf(g,"%ld\n",nr);
for(i=1;i<=nr;i++)
fprintf(g,"%ld\n",aux[i]);
return 0;
}