Cod sursa(job #3348492)

Utilizator Gabriel_DaescuDaescu Gabriel Florin Gabriel_Daescu Data 22 martie 2026 12:35:33
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>
#include <vector>
#define NMAX 1009
#define VMAX 50009
using namespace std;
ifstream  fin("economie.in");
ofstream fout("economie.out");
int N,v[NMAX],dp[VMAX];
vector<int>sol;

void citire()
{
    fin>>N;

    for(int i=1; i<=N; i++)
    {
        fin>>v[i];
    }
}

int main()
{
    citire();

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

    dp[0]=1;
    for(int i=1; i<=N; i++)
    {
        if(!dp[v[i]])
        {
            sol.push_back(v[i]);

            for(int j=v[i]; j<VMAX; j++)
            {
                dp[j]=dp[j]|dp[j-v[i]];
            }
        }
    }

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

    for(int i=0; i<sol.size(); i++)
    {
        fout<< sol[i] << "\n";
    }

    return 0;
}