Cod sursa(job #1779667)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 15 octombrie 2016 15:41:50
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <algorithm>
#include <bitset>
using namespace std;
int n,i,v[1001],sol[1001],j,maxi,k,ok;
bitset <50001>f;
ifstream fin ("economie.in");
ofstream fout ("economie.out");

int main (){

    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    sort (v+1,v+n+1);
    //sol[1] = v[1];
    //k = 1;

    //for (i=v[1];i<=maxi;i+=v[1])
      //  f[i] = 1;
    f[0] = 1;
    for (i=1;i<=n;i++){
        if (f[v[i]] == 0){
            sol[++k] = v[i];
            for (j=0;j+v[i]<=v[n];j++){
                if (f[j] == 1)
                    f[j+v[i]] = 1;
               // if (j % v[i] == 0)
                 //   f[j] = 1;
            }

        }
    }
    fout<<k<<"\n";
    for (i=1;i<=k;i++)
        fout<<sol[i]<<"\n";

    return 0;
}