Cod sursa(job #2501168)

Utilizator Iulia25Hosu Iulia Iulia25 Data 29 noiembrie 2019 10:15:54
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda simu Marime 0.58 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int n, ans;
int a[1005], r[1005];
bool ok[50005];

void rucsac(int val)	 {
  for (int i = 0; i <= 50000 - val; ++i)	{
		if (ok[i])
			ok[i + val] = true;
  }
}

int main()	{
  fin >> n;
  for (int i = 1; i <= n; ++i)
		fin >> a[i];
	sort (a + 1, a + n + 1);
	ok[0] = true;
	for (int i = 1; i <= n; ++i)	{
		if (ok[a[i]])
			continue;
		r[++ans] = a[i];
		rucsac(a[i]);
	}
	fout << ans << '\n';
	for (int i = 1; i <= ans; ++i)
		fout << r[i] << '\n';
	return 0;
}