Pagini recente » Cod sursa (job #2727298) | Borderou de evaluare (job #1053485) | Cod sursa (job #3279294) | Cod sursa (job #3194659) | Cod sursa (job #110457)
Cod sursa(job #110457)
#include <iostream>
#include <algorithm>
const int maxn = 1001;
const int maxval = 50005;
FILE *in = fopen("economie.in","r"), *out = fopen("economie.out","w");
int n;
int a[maxn];
int fol[maxval];
int answ[maxn];
int main()
{
fscanf(in, "%d", &n);
for ( int i = 1; i <= n; ++i )
fscanf(in, "%d", &a[i]);
std::sort(a+1, a+n+1);
int cnt = 0;
for ( int i = 1; i <= n; ++i )
{
if ( !fol[ a[i] ] )
{
answ[++cnt] = a[i];
fol[ a[i] ] = 1;
for ( int j = 2; a[i]*j <= maxval; ++j )
{
int k = a[i] * j;
fol[k] = 1;
}
for ( int j = 1; j <= maxval; ++j )
if ( fol[j] )
fol[j + a[i]] = 1;
}
}
fprintf(out, "%d\n", cnt);
for ( int i = 1; i <= cnt; ++i )
fprintf(out, "%d\n", answ[i]);
return 0;
}