Cod sursa(job #1576956)

Utilizator PaulStighiStiegelbauer Paul-Alexandru PaulStighi Data 23 ianuarie 2016 01:23:10
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");

const int NMax = 1005;
const int VMax = 50005;

int N;
int M[NMax];
bool R[VMax];

vector <int> V;

void Read()
{
    fin>>N;

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

void Solve()
{
    int i,j;

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

    R[0]=1;

    for(i=1;i<=N;++i)
        if(!R[M[i]])
        {
            V.push_back(M[i]);
            for(j = 0;j <= (VMax-5-M[i]);j++)
                if(R[j])    R[j+M[i]]=1;
        }
}

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

int main()
{
    Read();
    Solve();
    Print();

    fin.close();
    fout.close();
    return 0;
}