Cod sursa(job #2593830)

Utilizator rares404AlShaytan - Balasescu Rares rares404 Data 4 aprilie 2020 18:07:03
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 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"
#include "algorithm"

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

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) ;
	sieve[0] = 1 ;
	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 j = 1 ; j <= MAX_VAL - v[i] ; ++ j) {
				sieve[j + v[i]] |= sieve[j] ;
			}
		}
	}
	out << ans << '\n' ;
	for (auto it : sol) {
		out << it << '\n' ;
	}
}