Cod sursa(job #1779664)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 15 octombrie 2016 15:40:31
Problema Economie Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 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;
    maxi = v[n];
    //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[n];j++){
                if (f[j] == 1)
                    f[j+v[i]] = 1;
               // if (j % v[i] == 0)
                 //   f[j] = 1;
            }
            ok++;
        }
    }
    fout<<k<<"\n";
    for (i=1;i<=k;i++)
        fout<<sol[i]<<"\n";

    return 0;
}