Cod sursa(job #2277227)

Utilizator Raresr14Rosca Rares Raresr14 Data 5 noiembrie 2018 21:25:31
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n,i,v[1010],f[50100],sol[50100],k,maxim,j,nr,s,t;

int main(){
   fin>>n;
   for(i=1;i<=n;i++){
        fin>>v[i];
        maxim=max(maxim,v[i]);
   }
   sort(v+1,v+n+1);
   if(v[1]==1){
        fout<<"1\n1";
        return 0;
   }
   for(i=1;i<=n;i++)
       if(f[v[i]]==0){
            f[v[i]]=1;
            sol[++k]=v[i];
               for(t=1;t<=maxim;t++)
                   if(t+sol[k]<=maxim&&f[t]==1)
                      f[t+sol[k]]=1;
       }
   fout<<k<<"\n";
   for(i=1;i<=k;i++)
        fout<<sol[i]<<"\n";
    return 0;
}