Cod sursa(job #3269752)

Utilizator catalinmarincatalinmarin catalinmarin Data 20 ianuarie 2025 16:48:55
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <queue>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");

struct oaie {
    int dist, puf;
    bool operator < (const oaie &other) const {
        return dist < other.dist;
    }
};

vector<oaie> v;

int main() {

    int n, x, l;
    fin >> n >> x >> l;
    for (int i = 1; i <= n; i++){
        oaie o;
        fin >> o.dist >> o.puf;
        v.push_back(o);
    }

    int cnt = 0;
    long long ans = 0;
    priority_queue<int> pq;
    sort(v.begin(), v.end());
    for (int i = 0; i <= x / l; i++){
        int dist_max = l * i;
        while (cnt < n && v[cnt].dist <= dist_max){
            pq.push(v[cnt].puf);
            cnt++;
        }
        if (!pq.empty()) {
            ans += pq.top();
            pq.pop();
        }
    }
    fout << ans;
    return 0;
}