Cod sursa(job #809880)
| Utilizator | Data | 9 noiembrie 2012 11:07:39 | |
|---|---|---|---|
| Problema | Economie | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<stdio.h>
FILE*f=fopen("economie.in","r");
FILE*g=fopen("economie.out","w");
int n,nr,v[1001],w[50001],sol[1001];
int main()
{
fscanf(f,"%d",&n);
for(int i=1;i<=n;++i)
fscanf(f,"%d",&v[i]);
for(int i=1;i<=n;++i)
if(!w[v[i]])
{
sol[++nr]=v[i];
for(int j=v[i];j<=50000;j+=v[i])
w[j]=1;
int x=50000-v[i];
for(register int j=1;j<=x;++j)
if(w[j])
w[j+v[i]]=1;
}
fprintf(g,"%d\n",nr);
for(int i=1;i<=nr;++i)
fprintf(g,"%d\n",sol[i]);
fclose(f);
fclose(g);
return 0;
}
