Cod sursa(job #2395779)

Utilizator qThunderStefan Durlanescu qThunder Data 2 aprilie 2019 21:02:43
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n,x,maxim,k,minim,i1,i,g1,g,s;
int d[50004],v[1004],v1[1004];
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        maxim=max(v[i],maxim);
    }
    sort(v+1,v+n+1);
    d[0]=1;
    for(int i=1;i<=n;i++)
    {
        if(d[v[i]]==0)
        {
            v1[++k]=v[i];
            for(int j=0;j<=maxim;j++)
                if(v[i]+j<=maxim && d[j]==1)
                {
                    d[j+v[i]]=1;
                }
        }
    }
    fout<<k<<"\n";
    for(int i=1;i<=k;i++)
        fout<<v1[i]<<"\n";
    return 0;
}