Cod sursa(job #423193)

Utilizator drywaterLazar Vlad drywater Data 23 martie 2010 16:20:50
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 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]);
		
		if (k<v[i]) k=v[i];
	}
	sort(v+1,v+n+1);
	nr=n;
	v2[0]=1;
	for (i=1;i<=n;i++)
	{
		if (v2[v[i]]==1) {v[i]=0;nr--;continue;}
		v2[v[i]]=-1;
		for (j=0;j<=k;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;
}