Cod sursa(job #2910018)

Utilizator SeracovanuEdwardSeracovanu Edward SeracovanuEdward Data 17 iunie 2022 17:08:18
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

int const maxn = 50000;

int n;
int A[1005];
int p[maxn + 5];

int main()
{
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    cin >> n;
    for(int i = 1;i <= n; ++i){
        cin >> A[i];
    }
    sort(A + 1,A +1 + n);
    vector <int> ans;
    p[0] = 1;
    for(int i = 1;i <= n; ++i){
        if(!p[A[i]]){
            ans.push_back(A[i]);
            for(int j = 0;j + A[i] <= maxn; j += 1)
                if(p[j])
                    p[j + A[i]] = 1;
        }
    }
    cout << ans.size() << "\n";
    for(auto x:ans)
        cout << x << " ";
}