Cod sursa(job #188335)

Utilizator Mishu91Andrei Misarca Mishu91 Data 7 mai 2008 22:27:07
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <bitset>
#include <vector>
#include <algorithm>

using namespace std;

#define MAX_V 50001
#define pb push_back

vector <int> V, S;
bitset <MAX_V> Vz;
int N;

void read()
{
    scanf("%d",&N);

    for(int i=0,x; i<N; ++i)
    {
        scanf("%d",&x);
        V.pb(x);
    }
}

void solve()
{
    sort(V.begin(), V.end());

    for(int i=0; i<N; ++i)
        if(!Vz[V[i]])
        {
            S.pb(V[i]);
            for(int j = V[i]; j <= MAX_V; j += V[i])
                Vz[j] = 1;
        }
    printf("%d\n",S.size());
    for(vector<int> :: iterator it = S.begin(); it < S.end(); ++it)
        printf("%d\n",(*it));
}

int main()
{
    freopen("economie.in","rt",stdin);
    freopen("economie.out","wt",stdout);
    read();
    solve();
}