Cod sursa(job #278038)

Utilizator DrakeDemonSebestin Dragos DrakeDemon Data 12 martie 2009 08:07:45
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
#define DIM 50005

long v[1005],sol[1005],n,i,j,k,aux;
int s[DIM];

int main(){
FILE *f = fopen("economie.in","r");
FILE *g = fopen("economie.out","w");
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
	fscanf(f,"%ld",&v[i]);
for(i=1;i<n;i++)
	for(j=i+1;j<=n;j++){
		if(v[j]<v[i]){
			aux = v[i];
			v[i] = v[j];
			v[j] = aux;
		}

	}
s[0]=1;
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;

}

for(i=1;i<=k;i++)
	fprintf(g,"%ld ",sol[i]);

fclose(f);
fclose(g);
return 0;
}