Cod sursa(job #1184749)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 13 mai 2014 23:08:54
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <algorithm>
#define NMax 1001
using namespace std;
ifstream f("economie.in");
ofstream g("economie.out");
int n, val[NMax], subset[NMax], valid[50001], i, j, p, k, Max=-1;
int main()
{
    f>>n;
    for (i=1; i<=n; i++) {
        f>>val[i];
        valid[val[i]]=1;
        if (Max < val[i])
            Max=val[i];
    }
    sort (val+1, val+n+1);
    for (i=1; i<=n; i++) {
        if (valid[val[i]]==1) {
            subset[++k]=val[i];
            for (j=1; j<=Max-val[i]; j++)
                if (valid[j]==1)
                    valid[val[i]+j]=0;
        }
    }
    g<<k<<"\n";
    for (i=1; i<=k; i++)
        g<<subset[i]<<"\n";
    return 0;
}