Cod sursa(job #2593826)

Utilizator rares404AlShaytan - Balasescu Rares rares404 Data 4 aprilie 2020 18:03:39
Problema Economie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
//
//  main.cpp
//  economie
//
//  Created by Eusebiu Rares on 04/04/2020.
//  Copyright © 2020 Eusebiu Rares. All rights reserved.
//

#include <iostream>
#include "fstream"
#include "vector"

const int MV = 1000 ;
const int MAX_VAL = 50000 ;
const int BULAN = 10000 ;

std::fstream in ("economie.in", std::ios::in) ;
std::fstream out ("economie.out", std::ios::out) ;

int v[MV + 1] ;
bool sieve[MAX_VAL] ;

int main(int argc, const char * argv[]) {
	int n ; in >> n ;
	for (int i = 1 ; i <= n ; ++ i) {
		in >> i[v] ;
	}
	std::sort(v + 1, v + 1 + n) ;
	int ans(0) ;
	std::vector<int> sol ;
	for (int i = 1 ; i <= n ; ++ i) {
		if (!sieve[v[i]]) {
			ans ++ ;
			sieve[v[i]] = 1 ;
			sol.push_back(v[i]) ;
			for (int coef = 1 ; coef <= BULAN ; ++ coef) {
				for (int j = i + 1 ; j <= n && v[j] - v[i] * coef > 0 ; ++ j) {
					sieve[v[j]] |= sieve[v[j] - v[i] * coef] ;
				}
			}
		}
	}
	out << ans << '\n' ;
	for (auto it : sol) {
		out << it << '\n' ;
	}
}