Cod sursa(job #849052)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 6 ianuarie 2013 00:22:29
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int V[1010];
int Sol[1010];
bool Pos[50000010];

int main ()
{
	int N, i;
	
	in >> N;
	
	for (i = 1; i <= N; i ++){
		in >> V[i];
		
		if (V[i] == 1){
			out << "1\n1";
			
			return 0;
		}
	}
	
	sort (V + 1, V + N + 1);
	Pos[0] = 1;
	
	for (i = 1; i <= N; i ++)
		if (!Pos[ V[i] ]){
			Sol[ ++ Sol[0] ] = V[i];
			
			for (j = 0; j + V[i] <= V[N]; j ++)
				if (Pos[j])
					Pos[ j + V[i] ] = 1;
		}

	for (i = 0; i <= Sol[0]; i ++)
		out << Sol[i] << "\n";
	
	return 0;
}