Cod sursa(job #423174)

Utilizator drywaterLazar Vlad drywater Data 23 martie 2010 16:01:58
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <stdio.h>
FILE *f=fopen("economie.in","r"),*g=fopen("economie.out","w");
int n,v[1001],i,j,max,k,v2[50001],nr;
int main(void)
{
	fscanf(f,"%d",&n);
	for (i=1;i<=n;i++)
	{
		fscanf(f,"%d",&v[i]);
		v2[v[i]]=-1;
		if (max<v[i]) max=v[i];
	}
	nr=n;
	for (i=1;i<=n;i++)
	{
		if (v2[v[i]]==1) {v[i]=0;nr--;continue;}
		for (j=1;j<=max;j++)
			if (v2[j]!=0 && j+v[i]<=max) v2[j+v[i]]=1;
	}
	fprintf(g,"%d\n",nr);
	for (i=1;i<=n;i++)
		if (v[i]!=0)
			fprintf(g,"%d\n",v[i]);
	fclose(g);
	return 0;
}