Cod sursa(job #2277051)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 5 noiembrie 2018 19:11:22
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int v[50005], d[50005], s[50005];
int n, i, m, j, k;

int main(){
    fin >> n;
    for (i=1; i<=n; i++){
        fin >> v[i];
        m = max(m, v[i]);
    }
    sort (v, v + n + 1);
    d[0] = 1;
    for (i=1; i<=n; i++){
        if (d[v[i]] == 0){
            s[++k] = v[i];
            for (j=0; j<=m-v[i]; j++){
                if (d[j] == 1 && j + v[i] <= m){
                    d[j + v[i]] = 1;
                }
            }
        }
    }
    fout << k << "\n";
    for (i=1; i<=k; i++){
        fout << s[i] << "\n";
    }
    return 0;
}