Cod sursa(job #1845760)

Utilizator paulstepanovStepanov Paul paulstepanov Data 11 ianuarie 2017 21:10:46
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");

const int MAXN = 1005;
const int MAXV = 50005;
int N;
int V[MAXN];
bool E[MAXV];
int k, Sol[MAXN];

void Read()
{
    fin>>N;
    for(int i=1;i<=N;++i)
        fin>>V[i];
    sort(V+1,V+1+N);
}

void Solve()
{
    E[0]=1;
    for(int i=1;i<=N;++i)
    {
        if(E[V[i]]==0)
        {
            Sol[++k]=V[i];
            for(int j=0;j+V[i]<=50005;++j)
                if(E[j]==1)
                    E[j+V[i]]=1;
        }

    }
}

void Print()
{
    fout<<k<<"\n";
    for(int i=1;i<=k;++i)
        fout<<Sol[i]<<"\n";

}

int main()
{
    Read(); Solve(); Print();
    return 0;
}