Cod sursa(job #426866)

Utilizator SpiderManSimoiu Robert SpiderMan Data 27 martie 2010 13:02:48
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <bitset>
using namespace std;

ifstream f("economie.in");
ofstream g("economie.out");

int sol[1005],V[1005];
bitset<50001> Din;
int N,cnt,vf,h;

int main()
{
    int i,j;

    f >> N;
    for (i=1;i<=N;i++)
        f >> V[i];
    sort(V+1,V+N+1);
    Din[0] = 1; //e clar
    for (i=1;i<=N;i++)
        if (Din[V[i]]==0)
        {
            sol[++cnt]=V[i];
            for (j=0;j<=V[N];j++)
                if (Din[j] && j+V[i]<=V[N])
                    Din[j+V[i]]=1;
        }
    g << cnt << "\n";
    for (i=1;i<=cnt;i++) g<< sol[i] << "\n";
}