Cod sursa(job #278044)

Utilizator dinuddinu dan dinud Data 12 martie 2009 08:22:27
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
#define DIM 1001

int v[DIM],s[50*DIM],n,i,j,k,aux,sol[DIM];
int main(){

FILE*f=fopen("econom.in","r");
FILE*g=fopen("econom.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[i];
		v[i]=v[j];
		v[j]=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;
	  }

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




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