Cod sursa(job #2106314)

Utilizator elenaisaiaElena Isaia elenaisaia Data 15 ianuarie 2018 16:44:48
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int n, a[1005], fr[1005], sol[1005], maxim, nr, t;

void citire()
{
    ifstream fin("economie.in");
    fin>>n;
    for(int i=0;i<n;++i)
        fin>>a[i];
}

void fct()
{
    maxim=a[n-1];
    fr[0]=1;
    for(int j=0;j<n;++j)
    {
        if(fr[a[j]]==0)
        {
            nr++;
            sol[t++]=a[j];
        }
        for(int i=0;i<=maxim;++i)
        {
            if(i+a[j]<=50000&&fr[i]==1)
            {
                fr[i+a[j]]=1;
            }
        }
    }
}

void afis()
{
    ofstream fout("economie.out");
    fout<<t<<"\n";
    for(int i=0;i<t;++i)
        fout<<sol[i]<<" ";
}

int main()
{
    citire();
    sort(a,a+n);
    fct();
    afis();
    return 0;
}