Cod sursa(job #200908)

Utilizator IrnukIrina Grosu Irnuk Data 27 iulie 2008 13:20:26
Problema Energii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
/* energii
Gigel a ajuns administrator la o centrala termo-electrica. Intr-o zi a avut loc o cadere de
 tensiune si astfel centrala este la pamant. Gigel trebuie sa o repuna in functiune. Stiind ce
  energie produce fiecare generator cat si costul punerii in functiune el trebuie sa gasesca o 
  solutie de cost minim, pentru a produce o cantitate de energie egala sau mai mare cu cea necesara 
  repornirii centralei.
*/

#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;
	}
}


void bubble_sort()
{
	int ord,i;
	do
	{
		ord=1;
		for(i=0;i<g-1;i++)
			if(v[i].m<v[i+1].m)
			{
				aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; ord=0;
			}
	}while(ord==0);
}

int main()
{
	citire();
	int i=0;
	bubble_sort();
	while(w>0)
	{
		w-=v[i].eg;
		cost+=v[i++].ec;
	}
	fout<<cost<<'\n';
	fout.close();
	return 0;
}