Cod sursa(job #184573)

Utilizator raduzerRadu Zernoveanu raduzer Data 23 aprilie 2008 21:10:55
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

int n,m,i,j,b[1010],c[50010],d[50010],q,min,max,x;

int main()
{
	freopen("economie.in","r",stdin);
	freopen("economie.out","w",stdout);
	scanf("%d",&n);
	max=0;
	min=100000;
	for (i=1; i<=n; ++i) 
	{ 
		scanf("%d",&x);
		d[x]=1; 
		if (x>max) max=x;
		if (x<min) min=x;
	}
	m=0;
	for (i=min; i<=max; ++i)
	{
		q=1;
		for (j=1; j<=m; ++j)
			if (c[i-b[j]]==1)
			{
				q=0;
				break;
			}
		c[i]=1;
		if (q==1 && d[i]==0) c[i]=0;
		if (q==1 && d[i]==1)
		{
			++m;
			b[m]=i;
		}
	}
	printf("%d\n",m);
	for (i=1; i<=m; ++i) printf("%d\n",b[i]);
	return 0;
}