Cod sursa(job #775591)

Utilizator SteveStefan Eniceicu Steve Data 8 august 2012 15:59:08
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <algorithm>

using namespace std;

int N, cnt = 1;
int v[1005];
int x[50005];
int lol[50005];

void Citire ()
{
    ifstream fin ("economie.in");
    fin >> N;
    for (int i = 0; i < N; i++)
    {
        fin >> v[i];
    }
    sort (v, v + N);
    x[v[0]] = 1;
    for (int i = 0; i <= 50000; i += v[0])
    {
        lol[i] = 1;
    }
    fin.close ();
}

void Business ()
{
    for (int i = 1; i < N; i++)
    {
        if (!lol[v[i]])
        {
            cnt++;
            x[v[i]] = 1;
            for (int j = 0; j <= 50000 - v[i]; j++)
            {
                if (lol[j]) lol[j + v[i]] = 1;
            }
        }
    }
}

void Scriere () {
    ofstream fout ("economie.out");
    fout << cnt << "\n";
    for (int i = 1; i <= v[N - 1]; i++)
    {
        if (x[i]) fout << i << "\n";
    }
    fout.close ();
}

int main () {
    Citire ();
    Business ();
    Scriere ();
    return 0;
}