Cod sursa(job #196385)

Utilizator gcosminGheorghe Cosmin gcosmin Data 26 iunie 2008 10:47:09
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

#define NMAX 1010

int N;

int a[NMAX];

char jeg[50010];

int rez[NMAX];

int main()
{
	int i, j;

	freopen("economie.in", "r", stdin);
	freopen("economie.out", "w", stdout);

	scanf("%d", &N);

	for (i = 1; i <= N; i++) scanf("%d", &a[i]);
	
	sort(a + 1, a + N + 1);

	jeg[0] = 1;

	for (i = 1; i <= N; i++) {
		if (jeg[ a[i] ]) continue;

		rez[++rez[0]] = a[i];

		for (j = a[i]; j <= a[N]; j++)
			if (jeg[j - a[i]]) jeg[j] = 1;
	}

	printf("%d\n", rez[0]);

	for (i = 1; i <= rez[0]; i++) printf("%d\n", rez[i]);

return 0;
}