Cod sursa(job #3358847)

Utilizator RaresPanuPanu Rares RaresPanu Data 20 iunie 2026 21:48:20
Problema Lupul Urias si Rau Scor 92
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <algorithm>
#include <fstream>
#include <queue>
#include <vector>
#include <functional>

using namespace std;

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

struct stu {
    int final,val;
}v[100001];

bool compare(const stu& a, const stu& b) {
    return a.final < b.final;
}

priority_queue<int,vector<int>,greater<int> > pq;

int main() {
    int n,x,l;
    fin >> n >> x >> l;
    for (int i=1;i<=n;i++) {
        int d,a;
        fin >> d >> a;
        v[i].final = (x-d)/l+1;
        v[i].val = a;
    }
    sort(v + 1,v + n + 1,compare);
    for (int i=1;i<=n;i++) {
        pq.push(v[i].val);
        if (pq.size()>v[i].final) {
            pq.pop();
        }
    }
    long long sum = 0;
    while (!pq.empty()) {
        sum += pq.top();
        pq.pop();
    }
    fout << sum;
    return 0;
}