Cod sursa(job #423181)

Utilizator drywaterLazar Vlad drywater Data 23 martie 2010 16:07:16
Problema Economie Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>
#include <algo.h>
FILE *f=fopen("economie.in","r"),*g=fopen("economie.out","w");
int n,v[1001],i,j,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 (k<v[i]) k=v[i];
	}
	sort(v+1,v+n+1);
	nr=n;
	for (i=1;i<=n;i++)
	{
		if (v2[v[i]]==1) {v[i]=0;nr--;continue;}
		for (j=1;j<=k-v[i];j++)
			if (v2[j]!=0 && j+v[i]<=k) 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;
}