Cod sursa(job #1758924)

Utilizator LegionHagiu Stefan Legion Data 18 septembrie 2016 05:55:45
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
bool hv[50001];
bool cm[50001];
vector<int> sol;
void rez()
{
	int i,j;
	for (i = 1; i <= 50000; i++)
	{
		if (hv[i])
		{
			if (cm[i] == 0)
			{
				sol.push_back(i);
				if (2*i<=50000)
				cm[2 * i] = 1;
				for (j = i + 1; j <= 50000; j++)
				{
					if (cm[j] == 1)
					{
						if (j + i <= 50000)
						{
							cm[j + i] = 1;
						}
					}
				}
			}
		}
	}
}
int main()
{
	ifstream in("economie.in");
	ofstream out("economie.out");
	int x,i,n;
	in >> n;
	for (i = 1; i <= n; i++)
	{
		in >> x;
		hv[x] = 1;
	}
	rez();
	out << sol.size() << "\n";
	for (i = 0; i < sol.size(); i++)
	{
		out << sol[i] << "\n";
	}
	return 0;
}