Cod sursa(job #1093082)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 27 ianuarie 2014 18:46:33
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("economie.in");
ofstream fout("economie.out");

int v[1001],s[1001],maxv,n,t;
bool dp[50001],is[50001];

int main()
{
    fin>>n;

    for (int i=1; i<=n; ++i)
    {
        fin>>v[i];
        is[v[i]] = 1;
        maxv = max (maxv,v[i]);
    }

    sort (v+1,v+n+1);
    dp[0] = 1;

    for (int i=1; i<=n; ++i)
    {
        if (!dp[v[i]])
        {
            s[++t] = v[i];
            for (int j=0; j+v[i]<=maxv; ++j)
            {
                if (dp[j])
                {
                    dp[j+v[i]] = 1;
                }
            }
        }
    }

    fout<<t<<"\n";

    for (int i=1; i<=t; ++i)
    {
        fout<<s[i]<<"\n";
    }
}