Cod sursa(job #2674455)

Utilizator StefanSanStanescu Stefan StefanSan Data 19 noiembrie 2020 11:07:14
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include      <iostream>
#include      <fstream>
#include      <algorithm>

using namespace std;

ifstream in("energii.in");
ofstream out("energii.out");

struct generator {
	int energie;
	int cost;
	double eff;
}g[1002];

bool comp(generator a, generator b) {
	return (a.cost < b.cost);
}

int G, W;

int main() {

	ios::sync_with_stdio(false);
	in.tie(NULL), out.tie(NULL);
	
	in >> G >> W;
	for (int i = 1; i <= G; i++) {
		in >> g[i].energie >> g[i].cost;
		g[i].eff = (double)g[i].energie / g[i].cost;
	}
	
	sort(g + 1, g + G + 1, comp);

	int energie = 0, cost = 0, ok = 0;

	for (int i = 1; i <= G && ok == 0; i++) {
		if (energie + g[i].energie <= G) {
			energie += g[i].energie;
			cost += g[i].cost;
		}
		else {
			ok = 1;
			energie += g[i].energie;
			cost += g[i].cost;
		}
	}
	
	if (cost == 0) out << -1;
	else out << cost;

    return 0;

}