Cod sursa(job #2208721)

Utilizator aurelionutAurel Popa aurelionut Data 31 mai 2018 01:34:15
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

const int NMAX = 1010;
const int VALMAX = 50010;
int n;
int v[NMAX];
bool ciur[VALMAX];
vector <int> a;

int main()
{
	ifstream fin("economie.in");
	ofstream fout("economie.out");
	fin >> n;
	for (int i = 1;i <= n;++i)
		fin >> v[i];
	sort(v + 1, v + n + 1);
	ciur[0] = true;
	for (int i = 1;i <= n;++i)
	{
		if (ciur[v[i]] == false)
		{
			a.push_back(v[i]);
			for (int j = 0;j <= VALMAX - v[i];++j)
				if (ciur[j] == true)
					ciur[j + v[i]] = true;
		}
	}
	fout << (int)a.size() << "\n";
	for (int i : a)
		fout << i << "\n";
	fin.close();
	fout.close();
	return 0;
}