Cod sursa(job #3164337)

Utilizator AdrianRosuRosu Adrian Andrei AdrianRosu Data 2 noiembrie 2023 19:57:58
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
#define DIM 50001
#define INF 1e9

using namespace std;

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

vector <int> answer;

int v[DIM], rucsac[DIM];

int n, i, j, x;

int main(){

    fin >> n;

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

    sort(v + 1, v + n + 1);

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

        if(!rucsac[v[i]]){

            answer.push_back(v[i]);

            rucsac[v[i]] = 1;

        }

        for(j=1;j + v[i] < DIM;j++)
            if(rucsac[j])
                rucsac[j + v[i]] = 1;


    }

    fout << answer.size() << "\n";

    for(i=0;i<answer.size();i++)
        fout << answer[i] << "\n";


}