Cod sursa(job #550149)

Utilizator wscsprint3rIrimescu Stefan wscsprint3r Data 9 martie 2011 11:53:43
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
//
#include<stdio.h>
FILE *f=fopen("energii.in","r"), *g=fopen("energii.out","w");
int ss,s,i,n,aux,inj,sw,sss;
struct {int e,c,r;} v[5555];


void read()
{
	fscanf(f,"%d" ,&n);
	fscanf(f,"%d", &s);
	
	for(i=1;i<=n;i++)
	{
	fscanf(f,"%d %d", &v[i].e, &v[i].c);
	v[i].r=v[i].e/v[i].c;
	}
}


void shell()
{
	
	inj=n;
	while(inj>1)
	{
		inj/=2;
		
	do{
		sw=1;
		for(i=1;i<=n-inj;i++)
		if(v[i].r>v[i+inj].r)
		{
			aux=v[i].r;
			v[i].r=v[i+inj].r;
			v[i+inj].r=aux;
			sw=0;
		}
	}while(sw==0);
	}

}
	

void find()
{
	i=n;
	ss=0;
	while(sss<s)
	{	sss=sss+v[i].e;
		ss=ss+v[i].c;
		i--;
	}
}



int main()
{
	read();
	shell();
	find();
	
	fprintf(g,"%d",ss);
	
	
	fclose(f);
	fclose(g);
	return 0;
}