Cod sursa(job #3262382)

Utilizator Victor5539Tanase Victor Victor5539 Data 9 decembrie 2024 22:26:06
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <set>

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


int n,i,j,val,sol,v[1005],MAX;
bool d[50005];
set<int> s;


bool verificare()
{
    for (auto x: s)
        if (d[x]==0)
            return false;


    return true;
}


int main()
{
    fin>>n;
    for (i=1; i<=n; i++)
    {
        fin>>val;
        s.insert(val);
        MAX=max(MAX,val);
    }


    for (auto y: s)
    {
        if (d[y]==0)
        {
        d[y]=1;
        v[++sol]=y;

        for (i=1; i<=MAX-y; i++)
            if (d[i])
                d[i+y]=1;
        }

        if (verificare())
            break;
    }




    fout<<sol<<"\n";
    for (i=1; i<=sol; i++)
        fout<<v[i]<<"\n";

    return 0;
}