Cod sursa(job #138799)

Utilizator pitbullpitbulll pitbull Data 19 februarie 2008 10:48:37
Problema Energii Scor 40
Compilator c Status done
Runda Arhiva de probleme Marime 0.8 kb
# include <stdio.h>
# include <stdlib.h>
# define MAX 1000

int gen[MAX];
int G,W;
int E[MAX],C[MAX];
float rap[MAX];


int main(){
	FILE *f=fopen("energii.in","r");
	fscanf(f,"%d",&G);
	fscanf(f,"%d",&W);
	int i,j;
	for (i=0;i<G;i++){
		fscanf(f,"%d %d",&E[i],&C[i]);
	}
	fclose(f);
	
	float aux;
	int aux1;
	
	
	
	for (i=0;i<G;i++)
		rap[i]=(float)C[i]/E[i];
	 
	for (i=0;i<G-1;i++)
		for (j=i+1;j<G;j++)
			if(rap[i]>rap[j]){
				aux=rap[i];
				rap[i]=rap[j];
				rap[j]=aux;
				aux1=E[i];
				E[i]=E[j];
				E[j]=aux1;
				
				aux1=C[i];
				C[i]=C[j];
				C[j]=aux1;	
			}
	i=0;
	int sum=0;
	while(W>0){
		W-=E[i];
		sum+=C[i];	
		i++;
	}		
	if(W>0)
		sum=-1;
	FILE *out=fopen("energii.out","w");
	fprintf(out,"%d\n",sum);
	fclose(out);		
	return 0;
}