Cod sursa(job #1289625)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 10 decembrie 2014 00:41:12
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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

bool s[50005];
int v[1005];
vector < int > sol;

int main()
{
    int n,soln;
    f >> n;
    for(int i = 1; i <= n; i++)
        f >> v[i];
    sort(v + 1, v + n + 1);
    for(int i = 1; i <= n; i++){
        if(s[v[i]] == 0){
            s[v[i]] = 1;
            sol.push_back(v[i]);
            for(int j = 0; j <= 50000 - v[j]; j++){
                if(s[j] == 1)
                    s[j+v[i]] = 1;
            }
        }
    }
    soln = sol.size();
    g << soln << "\n";
    for(int i = 0; i < soln; i++)
        g << sol[i] << "\n";
    return 0;
}