Cod sursa(job #200914)

Utilizator IrnukIrina Grosu Irnuk Data 27 iulie 2008 13:35:24
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb

#include<fstream.h>
ifstream fin("energii.in");
ofstream fout("energii.out");

unsigned long cost;
int g,w;
struct c
{
	int eg,ec;
	float m;
}v[1002],aux;

void citire()
{
	int i;
	fin>>g>>w;
	for(i=0;i<g;i++)
	{
		fin>>v[i].eg>>v[i].ec;
		v[i].m=(float)v[i].eg/v[i].ec;
	}
}

int cauta_max()
{
	int sv,i;
	float max;

	max=v[0].m;sv=0;
	for(i=1;i<g;i++)
		if(max<v[i].m) 
		{
			max=v[i].m;
			sv=i;
		}
	v[sv].m=0;
	return sv;
	
}
int main()
{
	citire();
	int i=0,z;

	while(w>0 && i<g)
	{
		i++;
		z=cauta_max();
		w-=v[z].eg;
		cost+=v[z].ec;
	}
	if(w<=0)
	fout<<cost<<'\n';
	else fout<<"-1\n";
	fout.close();
	return 0;
}