Cod sursa(job #3259699)

Utilizator 0021592Grecu rares 0021592 Data 27 noiembrie 2024 15:58:31
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
int n, i, j, v[1010], fr[50010], mx;
vector <int> selected;
int main()
{
    in >> n;
    for (i = 1; i <= n; i++)
    {
        in >> v[i];
        mx = max(mx, v[i]);
    }
    sort(v+1, v+1+n);
    fr[0] = 1;
    for (i = 1; i <= n; i++)
    {
        if (!fr[v[i]])
        {
            for (j = v[i]; j <= mx; j++)
                fr[j] = max(fr[j], fr[j-v[i]]);

            selected.push_back(v[i]);
        }
    }
    out << selected.size() << '\n';
    for (auto ind : selected)
        out << ind << '\n';
    return 0;
}