Cod sursa(job #550296)

Utilizator wscsprint3rIrimescu Stefan wscsprint3r Data 9 martie 2011 12:46:02
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
//
#include<stdio.h>
using namespace std;
FILE *f=fopen("energii.in","r"), *g=fopen("energii.out","w");
long  ss,s,i,n,inj,sw,sss,gg,w;
struct  {long  a, b; float r;} v[1003],aux;


void read()
{
	fscanf(f,"%ld" ,&gg);
	fscanf(f,"%ld", &w);
	
	for(i=1;i<=gg;i++)
	{
	fscanf(f,"%ld %ld", &v[i].a, &v[i].b);
	v[i].r=(float)v[i].a/v[i].b;
	}
}


void shell()
{
	
	
	do{
		sw=0;
		for(i=1;i<gg;i++)
		if(v[i].r<v[i+1].r)
		{
			aux=v[i];
			v[i]=v[i+1];
			v[i+1]=aux;
			sw++;
		}
	}while(sw!=0);
	

}
	

void find()
{
	i=1;
	s=0;
	while(w>0 && i<=gg)
	{	
		w=w-v[i].a;
		s=s+v[i].b;
		i++;
	}

if(w>0)
	s=-1;

}



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