Cod sursa(job #112254)

Utilizator SunsetGheoghe Multescu Sunset Data 4 decembrie 2007 01:02:55
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

#define maxn 1010
#define maxx 50010

int l,n;
int c[maxx];
int a[maxn],sol[maxn];

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

	scanf("%d ",&n);

	int i,j;

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

	sort(a+1,a+n+1);

	for (i=1;i<=n;i++)
		if (!c[a[i]])
		{
			sol[++l]=a[i];
			c[a[i]]=1;
			for (j=1;j+a[i]<=a[n];j++) c[j+a[i]]|=c[j];
		}

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

	return 0;
}