Cod sursa(job #1248787)

Utilizator outlashOutlash QV outlash Data 25 octombrie 2014 23:40:30
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <map>

using namespace std;

ifstream file("input.in");
ofstream out("energii.out");
// cost - energie
multimap<float, pair<int, int> > centrala;

int gen, cost_minim, maxim;
int energ, cost = 0;

int main()
{
	file >> gen >> cost_minim;

	for (int i = 0; i<gen; i++)
	{
		file >> energ >> cost;
		maxim = maxim + energ;
		centrala.insert(pair<float, pair<int, int>>(((float)(energ) / cost),make_pair(cost, energ)));
	}

	if (maxim < cost_minim)
	{
		out << -1;
		return -1;
	}
	else if (maxim == cost_minim)
	{
		out << maxim;
		return 0;
	}

	maxim = 0;
	auto it = centrala.rbegin();
	while (maxim < cost_minim)
	{
		maxim += it->second.first;
		it++;
	}

	out << maxim;



	return 1;
}