Cod sursa(job #844477)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 29 decembrie 2012 13:20:35
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#include <algorithm>
FILE *f=fopen("economie.in","r");
FILE *g=fopen("economie.out","w");
int N,V[1010];
bool viz[50001];
int sol[1010];

int main(void){
	register int i,j,Max=0;
	
	fscanf(f,"%d",&N);
	for(i=1;i<=N;i++){
		fscanf(f,"%d",&V[i]);
	}
	
	std::sort(V+1,V+N+1);
	Max=V[N];
	viz[0]=true;
	for(i=1;i<=N;i++){
		if(!viz[V[i]])
			sol[++sol[0]]=V[i];
		for(j=0;j<=V[N]-V[i];j++){
			if(viz[j])
				viz[j+V[i]]=true;
		}
	}
	
	fprintf(g,"%d\n",sol[0]);
	for(i=1;i<=sol[0];i++)
		fprintf(g,"%d\n",sol[i]);
	fclose(f);
	fclose(g);
	return 0;
}