Cod sursa(job #2658630)

Utilizator euyoTukanul euyo Data 14 octombrie 2020 16:59:09
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

const int MaxN = 1002;
const int MaxNr = 50000;

int v[MaxN];
int m[MaxN];
vector<int> t;
int f[MaxNr + 2];

int main() {
  int n;
  
  fin >> n;
  for ( int i = 1; i <= n; ++i ) {
	fin >> v[i];
  }
  sort( v + 1, v + n + 1 );
  for ( int i = 1; i <= n; ++i ) {
    if ( f[v[i]] == 0 ) {
      t.push_back( v[i] );
      f[v[i]] = 1;
	  for ( int j = 1; j + v[i] <= MaxNr; ++j ) {
        if ( f[j] == 1 ) {
		  f[j + v[i]] = 1;
		}
	  }	
	}
  }
  fout << t.size() << "\n";
  for ( int i = 0; i < (int)t.size(); ++i ) {
	fout << t[i] << "\n";
  }
  fin.close();
  fout.close();
  return 0;
}