Cod sursa(job #2982966)

Utilizator PHOSSESSEDProsie Radu-Teodor PHOSSESSED Data 21 februarie 2023 11:55:12
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<iostream>
#include<vector>
#include<algorithm>
#include<bitset>
using namespace std;

const int VMAX = 5e4 + 1;

bitset<VMAX> putem;

int main()
{
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);

    int n; cin >> n;
    vector<int> v(n);

    for(int i = 0; i < n ; i++) cin >> v[i];
    sort(v.begin(),v.end());

    vector<int> ans;
    putem[0] = 1;
    for(auto it : v)
        {
            if(putem[it])
                continue;

            ans.push_back(it);
            for(int i = it; i < VMAX ; i++)
                {
                    if(putem[i])
                        continue;

                    if(putem[i - it])
                        putem[i] = 1;
                }
        }

    cout << ans.size() << '\n';
    for(auto it : ans)
        cout << it << " ";

    return 0;
}