Cod sursa(job #2138950)

Utilizator marcudanfDaniel Marcu marcudanf Data 21 februarie 2018 23:17:39
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <queue>

using namespace std;

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

queue <int> q;
int n;
int v[1005];
bool p[60000];

int main(){
	fin >> n;
	for(int i = 0; i < n; i++)
		fin >> v[i];
	sort(v, v + n);
	q.push(v[0]);
	p[0] = 1;
	for(int i = v[0]; i <= v[n-1]; i += v[0])
		p[i] = 1;
	for(int i = 1; i < n; i++)
		if(!p[v[i]]){
			q.push(v[i]);
			for(int j = 0; j <= v[n-1] - v[i]; j++)
				if(p[j])
					p[v[i] + j] = 1;
		}
	fout << q.size() << '\n';
	while(!q.empty())
		fout << q.front() << '\n', q.pop();
	return 0;
}