Cod sursa(job #126984)

Utilizator za_wolfpalianos cristian za_wolf Data 23 ianuarie 2008 00:43:48
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#define NMAX 1001
#define MMAX 55001
int x[NMAX],y[MMAX],z[MMAX],i,j,m,sol,rez[NMAX],q,n;
int main()
{
	freopen("economie.in","r",stdin);
	freopen("economie.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<=n;i++)
	{
		scanf("%d",&x[i]);
		z[x[i]]=1;
		if (x[i]>q) q=x[i];
	}
	m=n;
	sol=0;
	y[0]=1;
	for (i=1;i<=n&&m>0;i++)
	if (z[i])
	{
		for (j=1;i*j<=q;j++)
		if (z[i*j])
		{
			m--;
			z[i*j]=0;
			y[i*j]=1;
		}
		for (j=0;j<=q;j++)
		if (y[i+j]&&z[i+j])
		{
			z[i+j]=0;
			m--;
			y[i+j]=1;
		}
		rez[++rez[0]]=i;
	}

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