Cod sursa(job #3243801)

Utilizator paull122Paul Ion paull122 Data 21 septembrie 2024 12:59:55
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

#define VMAX 50000
#define NMAX 1000
#define LOG 19
#define INF (long long)(10e9)
#define MOD 998244353
#define ll long long int


#define NIL 0


using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");

int n,k;
bool dp[VMAX+1];
int a[NMAX+1];
int main()
{
    fin >> n;
    for(int i=1;i<=n;i++)
    {
        fin >> a[i];
    }
    sort(a+1,a+n+1);
    dp[0]=1;
    vector<int> res;
    for(int i=1;i<=n;i++)
    {
        if(!dp[a[i]])
        {
            /// add a[i]
            res.push_back(a[i]);
            for(int j=a[i];j<=VMAX;j++)
            {
                dp[j] |= dp[j-a[i]];
            }
        }
    }
    fout << res.size() << "\n";
    for(int i : res)
    {
        fout << i << " ";
    }

}