Cod sursa(job #2712569)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 25 februarie 2021 23:37:42
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 1e5 + 5;
int N, X, L, D, A;
long long ans;
vector<int> adj[NMAX];
priority_queue<int> Q;

int main() {
    fin >> N >> X >> L;
    for(int i = 0; i < N; ++i) {
        fin >> D >> A;
        if(D <= X)
            adj[(X - D) / L + 1].emplace_back(A);
    }
    for(int i = NMAX - 1; i > 0; --i) {
        for(const int &x : adj[i])
            Q.emplace(x);
        if(!Q.empty()) {
            ans += Q.top();
            Q.pop();
        }
    }
    fout << ans << '\n';
}