Cod sursa(job #1187227)

Utilizator hopingsteamMatraguna Mihai-Alexandru hopingsteam Data 17 mai 2014 21:43:43
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include    <iostream>
#include    <fstream>
#include    <algorithm>

using namespace std;

ifstream fin("economie.in");
ofstream fout("economie.out");

int v[1005], sol[1005], soln;
bool itCouldBe[50005];

int N;
void read()
{
    fin >> N;
    for(int i = 0; i < N; i++)
        fin >> v[i];
}

void solve()
{
    sort(v,v+N);

    itCouldBe[0] = true;

    for(int i = 0; i < N; i++)
    {
        if(itCouldBe[v[i]] == false)
        {
            sol[soln] = v[i];   soln += 1;
            for(int j = 0; j <= v[N-1] - v[i]; j++)
            {
                if(itCouldBe[j] == true)
                    itCouldBe[v[i] + j] = true;
            }
        }
    }
}

void show()
{
    fout << soln << "\n";
    for(int i = 0; i < soln; i++)
        fout << sol[i] << "\n";
}

int main()
{
    read();
    solve();
    show();
    return 0;
}