Cod sursa(job #3269746)

Utilizator catalinmarincatalinmarin catalinmarin Data 20 ianuarie 2025 16:43:45
Problema Lupul Urias si Rau Scor 12
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 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;
    sort(v.begin(), v.end());
    for (int i = 0; i <= x / l; i++){
        priority_queue<int> pq;
        int dist_min = x - (l * i);
        while (cnt < n && v[cnt].dist >= dist_min){
            pq.push(v[cnt].puf);
            cnt++;
        }
        if (!pq.empty())
            ans += pq.top();
    }
    fout << ans;
    return 0;
}