Cod sursa(job #2477395)

Utilizator LeCapataIustinian Serban LeCapata Data 20 octombrie 2019 11:18:29
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

int v[1005], rez[1005], diviz[50005];

int main()
{
    int n, maxim;
    in>>n;

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


    sort(v+1,v+n+1);
    maxim=v[n];

    diviz[0]=1;
    int k=0;

    for(int i=1; i<=n; i++)
        if(diviz[v[i]]==0)
        {
            rez[++k]=v[i];
            for(int j=0; j<=maxim-v[i]; j++)
                if(diviz[j]==1)
                    diviz[j+v[i]]=1;
        }

    out<<k<<'\n';
    for(int i=1; i<=k; i++)
        out<<rez[i]<<" ";

    in.close();
    out.close();
    return 0;
}