Cod sursa(job #2501205)

Utilizator FrostfireMagirescu Tudor Frostfire Data 29 noiembrie 2019 11:21:39
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda simu Marime 0.69 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <vector>
#define NMAX 1000
#define VMAX 50000

using namespace std;

ifstream f("economie.in");
ofstream g("economie.out");

int n, v[NMAX+10], dp[VMAX+10], nr;
vector <int> ans;

int main()
{
    f >> n;
    for(int i=1; i<=n; i++) f >> v[i];
    sort(v+1, v+n+1);
    dp[0] = 1;
    for(int i=1; i<=n; i++)
        if(!dp[v[i]])
            {   ans.push_back(v[i]);
                for(int j=0; j<=VMAX-v[i]; j++)
                    if(dp[j])
                        dp[j+v[i]] = 1;
            }
    g << ans.size() << '\n';
    for(int i=0; i<ans.size(); i++) g << ans[i] << '\n';
    return 0;
}