Cod sursa(job #2674468)

Utilizator StefanSanStanescu Stefan StefanSan Data 19 noiembrie 2020 11:22:53
Problema Energii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#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;

}