Cod sursa(job #278059)

Utilizator dinuddinu dan dinud Data 12 martie 2009 08:45:39
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
int v[1001],sol[1001],s[50001],i,j,k,n,aux;
int main () {
	FILE *f = fopen("economie.in","r");
	FILE *g = fopen("economie.out","w");
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	for(i=1;i<n;i++)
		 for(j=i+1;j<=n;j++)
			if(v[i]>v[j]){
				aux=v[j];
				v[j]=v[i];
				v[i]=aux;
				}

	s[0]=1;
	k=0;
	for(i=1;i<=n;i++) {
		if(s[v[i]]==0)
			sol[++k]=v[i];
		for(j=0;j+v[i]<=v[n];j++)
			if(s[j]==1)
				s[j+v[i]]=1;
			   }
	fprintf(g,"%d\n",k);
	for(i=1;i<=k;i++)
		fprintf(g,"%d ",sol[i]);






	fclose(f);
	fclose(g);

return 0;
}