Cod sursa(job #2912311)

Utilizator rares89_Dumitriu Rares rares89_ Data 7 iulie 2022 21:59:46
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda 17_iulie Marime 0.72 kb
#include <fstream>
#include <algorithm>
#include <queue>

using namespace std;

ifstream fin("lupu.in");
ofstream fout("lupu.out");

pair<int, int> v[100005];
priority_queue<int> PQ;

int n, x, l;

int main() {
    fin >> n >> x >> l;
    for(int i = 1; i <= n; i++) {
        fin >> v[i].first >> v[i].second;
        v[i].first = (x - v[i].first) / l;
    }
    sort(v + 1, v + n + 1);
    long long int ans = 0;
    int k = n;
    for(int i = v[n].first; i >= 0; i--) {
        while(v[k].first == i && k > 0) {
            PQ.push(v[k].second);
            k--;
        }
        if(!PQ.empty()) {
            ans += 1LL * PQ.top();
            PQ.pop();
        }
    }
    fout << ans;
    return 0;
}