Cod sursa(job #2821060)

Utilizator cristia_razvanCristia Razvan cristia_razvan Data 22 decembrie 2021 08:34:54
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

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


long long ans;
long long n, x, L;
pair<long long, long long> a[100005];

priority_queue<long long> q;
int main() {

    fin >> n >> x >> L;
    for(long long i = 1; i <= n; ++i){
        fin >> a[i].first >> a[i].second;
        a[i].first = (x - a[i].first) / L;
    }
    sort(a + 1, a + n + 1);

    //for(long long i = n; i >= 1; --i)
       // cout << a[i].first << " " << a[i].second << '\n';
    long long i = n, ac = a[n].first;
    while(ac >= 0) {
        while(i > 0 && a[i].first >= ac) {
            q.push(a[i].second);
            --i;
        }
        if(!q.empty()) {
            ans += q.top();
            q.pop();
        }
        --ac;
    }
    fout << ans << '\n';
    fin.close();
    fout.close();
    return 0;
}