Cod sursa(job #854468)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 13 ianuarie 2013 17:20:07
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

int V[1010];
int Sol[1010];
bool Pos[50000010];

int main ()
{
    int N, i, j;

    in >> N;

    for (i = 1; i <= N; i ++){
        in >> V[i];

        if (V[i] == 1){
            out << "1\n1";

            return 0;
        }
    }

    sort (V + 1, V + N + 1);
    Pos[0] = 1;

    for (i = 1; i <= N; i ++)
        if (!Pos[ V[i] ]){
            Sol[ ++ Sol[0] ] = V[i];

            for (j = 0; j + V[i] <= V[N]; j ++)
                if (Pos[j])
                    Pos[ j + V[i] ] = 1;
        }

    for (i = 0; i <= Sol[0]; i ++)
        out << Sol[i] << "\n";

    return 0;
}