Pagini recente » Cod sursa (job #650971) | Cod sursa (job #2507314) | Cod sursa (job #174247) | Cod sursa (job #1354949) | Cod sursa (job #2674468)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
struct obiect {
int valoare;
int greutate;
double profit;
int index;
} v[1001];
bool comp(obiect a, obiect b) {
return (a.profit < b.profit);
}
int n, GMax;
int main() {
ios::sync_with_stdio(false);
in.tie(NULL), out.tie(NULL);
in >> n >> GMax;
for (int i = 1; i <= n; i++) {
in >> v[i].greutate >> v[i].valoare;
v[i].profit = (double)v[i].valoare / (double)v[i].greutate;
}
sort(v + 1, v + n + 1, comp);
int greutate = 0, ok = 0;
double castig = 0.0;
for (int i = 1; i <= n && ok == 0; i++) {
if (greutate + v[i].greutate < GMax) {
greutate += v[i].greutate;
castig += v[i].valoare;
}
else {
ok = 1;
greutate += v[i].greutate;
castig += v[i].valoare;
}
}
out << castig;
return 0;
}