Cod sursa(job #1687875)

Utilizator vladvlad00Vlad Teodorescu vladvlad00 Data 13 aprilie 2016 09:35:14
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <fstream>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;

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

void update(int x);

bool uz[50005];
int n, nrsol, v[1005], sol[1005];

int main()
{
	int i, j;

	fin >> n;
	uz[0] = 1;
	for (i = 1; i <= n; i++)
		fin >> v[i];
	sort(v + 1, v + 1 + n);
	for (i = 1; i <= n;i++)
		if (!uz[v[i]])
		{
			sol[++nrsol] = v[i];
			update(v[i]);
		}
	fout << nrsol << '\n';
	for (i = 1; i <= nrsol; i++)
		fout << sol[i] << '\n';
	return 0;
}

void update(int x)
{
	int i;

	for (i = x; i <= 50000; i++)
		if (uz[i - x])
			uz[i] = 1;
}