Cod sursa(job #184581)

Utilizator raduzerRadu Zernoveanu raduzer Data 23 aprilie 2008 21:21:28
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 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);
	min=100000;
	for (i=1; i<=n; ++i) 
	{ 
		scanf("%d",&x);
		d[x]=1; 
		if (x>max) max=x;
		if (x<min) min=x;
	}
	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) b[++m]=i;
	}
	printf("%d\n",m);
	for (i=1; i<=m; ++i) printf("%d\n",b[i]);
	return 0;
}