Cod sursa(job #1684663)

Utilizator cordun_cristinaCristina Maria Cordun cordun_cristina Data 11 aprilie 2016 11:13:37
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;
ifstream f("economie.in");
ofstream g("economie.out");

const int Nmax = 1005, Vmax = 50005;
int a[Nmax], B[Vmax], sol[Nmax],n, nr1;

bool Crit(int a, int b)
{
    return a<b;
}

int main()
{
    f>>n;
    for(int i = 1; i <= n; i++) f>>a[i];
    sort(a+1,a+n+1,Crit);
    B[0] = 1;
    for(int i = 1; i <= n; i++)
    {
        int val = a[i];
        //cout<<val<<' ';
        if(B[val] == 0)
        {
            //cout<<val<<' ';
            sol[++nr1] = val;
            int c = val;
            while(c<=50000)
            {
                B[c] = 1;
                c = c+val;
            }
            for(int j = 0; j <= a[n]; j++)
            {
                if(B[j] == 1 && val+j <= 50000) B[val+j] = 1;
            }
        }
    }
    g<<nr1<<'\n';
    for(int i = 1; i <= nr1; i++ ) g<<sol[i]<<'\n';
    return 0;
}