Cod sursa(job #1434213)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 10 mai 2015 14:06:10
Problema Economie Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <algorithm>

using namespace std;

#define inFile "economie.in"
#define outFile "economie.out"
#define MAX_N 1000
#define MAX_VAL 50000

ifstream in(inFile);
ofstream out(outFile);

int V[MAX_N + 1];
int S[MAX_N + 1], nSol;
bool P[MAX_VAL + 1];

int main() {
    int N, i, j, maxVal = 0;
    
    in >> N;
    for(i = 1; i <= N; i++) {
        in >> V[i];
        maxVal = max(V[i], maxVal);
    }
    sort(V+1, V+N+1);
    
    for(i = 1; i <= N; i++) {
        if(!P[V[i]]) {
            for(j = 1, P[V[i]] = true; j <= maxVal; j++)
                if(P[j] == true)
                    P[j+V[i]] = true;
            S[++nSol] = V[i];
        }
    }
    
    out << nSol << '\n';
    for(i = 1; i <= nSol; i++)
        out << S[i] << '\n';
    
    return 0;
}