Cod sursa(job #3164755)

Utilizator YosifIosif Andrei Stefan Yosif Data 4 noiembrie 2023 11:22:33
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;

string file = "economie";
ifstream fin(file + ".in");
ofstream fout(file + ".out");

bitset <50001> b;
int n, v[1001];

int main() {

    fin >> n;

    for (int i = 1; i <= n; i++)
        fin >> v[i];

    sort(v + 1, v + n + 1);
    vector <int> res;

    for (int i = 1; i <= n; i++) {

        if (b[v[i]] || v[i] == v[i - 1])
            continue;
        res.push_back(v[i]);

        b[v[i]] = true;
        int j = 50000 / v[i];

        while (j--)
            b |= (b << v[i]);

    }

    fout << res.size() << '\n';

    for (auto &i : res)
        fout << i << '\n';

    return 0;
}