Cod sursa(job #2832233)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 13 ianuarie 2022 10:58:08
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <algorithm>
#include <fstream>
#include <queue>

using namespace std;

struct Oaie {
    int lana, timp;
} v[100005];

priority_queue<int> H;

int cmp(Oaie a, Oaie b) { return a.timp > b.timp; }

int main() {
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    int n, x, l, dist, maxt = 0;
    cin >> n >> x >> l;
    for (int i = 1; i <= n; i++) {
        cin >> dist >> v[i].lana;
        v[i].timp = (x - dist) / l + 1;
        maxt = max(maxt, v[i].timp);
    }
    sort(v + 1, v + n + 1, cmp);
    int j = 1, suml = 0;
    for (int i = maxt; i >= 1; i--) {
        while (j <= n && v[j].timp == i)
            H.push(v[j++].lana);
        if (H.size() > 0) {
            suml += H.top();
            H.pop();
        }
    }
    cout << suml;
    return 0;
}