Cod sursa(job #278055)

Utilizator dinuddinu dan dinud Data 12 martie 2009 08:35:41
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 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("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[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;
	  }

  }

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




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