Cod sursa(job #3359026)

Utilizator pkseVlad Bondoc pkse Data 22 iunie 2026 23:13:36
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
#define int ll
using namespace std;
using ll = long long;

struct sheep {
    int d, v;
};

signed main() {
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    cin.tie(0)->sync_with_stdio(0);
    
    int n, x, l; cin >> n >> x >> l;
    sheep a[n];
    for(int i = 0; i < n; i ++) {
        auto &[d, v] = a[i]; cin >> d >> v;
        if(d <= x)
            d = (x - d) / l;
        else 
            i --, n --;
    }

    sort(a, a + n, [](sheep a, sheep b){
        return a.d > b.d;
    });

    int last = -2, ans = 0;
    priority_queue<int> pq;
    for(int i = 0; i < n && a[i].d >= 0; i ++) {
        if(last == -2) {
            last = a[i].d;
        } else while(last > a[i].d && pq.size()) {
            ans += pq.top();
            pq.pop();
            last --;
        }
        last = a[i].d;
        pq.push(a[i].v);
    }
    while(last > -1 && pq.size()) {
        ans += pq.top();
        pq.pop();
        last --;
    }
    cout << ans;
}