Nu aveti permisiuni pentru a descarca fisierul grader_test9.in
Cod sursa(job #110007)
Utilizator | Data | 25 noiembrie 2007 15:44:34 | |
---|---|---|---|
Problema | Economie | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.88 kb |
#include<stdio.h>
#include<algorithm>
using namespace std;
char a[50001];
int b[1001];
long n , i , j;
int max1;
long nr , sol[1001];
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d",&n);
for (i = 1 ; i <= n ; i++)
{
scanf("%d",&b[i]);
if (b[i]>max1)
max1 = b[i];
}
sort(b+1 , b + n);
for (i = 1 ; i <= n ; i++)
{
if (a[b[i]] != 1)
{
nr++;
sol[nr] = b[i];
for (j = b[i]; j <= max1; j+=b[i])
a[j] = 1;
for (j = 1 ; j <= max1 ; ++j)
{
if (a[j]==1 && j + b[i] <= max1)
a[j+b[i]] = 1;
}
}
}
printf("%ld\n",nr);
for (i = 1 ; i <= nr ; i++)
printf("%ld\n",sol[i]);
return 0;
}