Cod sursa(job #1384476)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 11 martie 2015 09:43:24
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <cstring>
#include <algorithm>
#define DIM 50010
using namespace std;

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

int N, V[DIM], i, j, k, F[DIM];
int T[DIM], nr, val;

void SetUp(){
     fin >> N;
     for(i = 1; i <= N; i ++){
          fin >> V[i];
          T[V[i]] = 1;
     }
     for(i = 0; i < DIM; i ++)
          F[i] = DIM;
     sort(V + 1, V + N + 1);
     return;
}

void Code(){
     F[0] = 0;
     while(nr != N){
          val ++;
          for(k = DIM-1; k >= 0; k --)
               if(F[k] != DIM)
                    for(j = k + V[val]; j <= DIM-1; j += V[val]){
                         if(F[j] == DIM && T[j] == 1)
                              nr ++;
                         F[j] = F[k] + 1;
                    }
     }
     fout << val << "\n";
     for(i = 1; i <= val; i ++)
          fout << V[i] << "\n";
     return;
}

int main(){
     SetUp();
     Code();
     return 0;
}