Cod sursa(job #496265)

Utilizator RengelBotocan Bogdan Rengel Data 28 octombrie 2010 11:40:47
Problema Energii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>

FILE *fin=fopen("energii.in","r");
FILE *fout=fopen("energii.out","w");

int a[1001],b[1001],n,s,aux,q,i,sw;
float c[1001],auxf;

int main(){
	
	fscanf(fin,"%d",&n);
	fscanf(fin,"%d",&q);
	
	for(i=1;i<=n;i++){
		fscanf(fin,"%d%d",&a[i],&b[i]);
		c[i]=(float)a[i]/(float)b[i];		//greedy
	}
	
	do{
		
		sw=0;
		for(i=1;i<n;i++)
			if(c[i]<c[i+1]){
				auxf=c[i];
				c[i]=c[i+1];
				c[i+1]=auxf;
				aux=a[i];
				a[i]=a[i+1];
				a[i+1]=aux;
				aux=b[i];
				b[i]=b[i+1];
				b[i+1]=aux;
				sw=1;
			}
		
	}while(sw);
	
	i=1;
	while(s<q){
		s+=a[i];
		i++;
	}
	
	n=i-1;
	s=0;
	for(i=1;i<=n;i++)
		s+=b[i];
	
	fprintf(fout,"%d",s);
	
	fclose(fout);
	
	return 0;
	
}