Cod sursa(job #2361637)

Utilizator greelioGreenio Greely greelio Data 2 martie 2019 17:34:17
Problema Lupul Urias si Rau Scor 72
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<bits/stdc++.h>
#define pii pair<long long,long long>
#define x first
#define y second
#define ll long long
using namespace std;

const ll inf=1e9;
priority_queue<pii>Q;
set<pii>S;
ll n,x,l,rs;

int main() {
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    cin>>n>>x>>l;
    for (int i=1; i<=n; ++i) {
        int x,y; cin>>x>>y;
        Q.push({y,x});
        S.insert({0,i});
    }
    while (Q.size()) {
        pii t=Q.top(); Q.pop();
        ll r=(x-t.y)/l+1;
        if (r<=0) continue;
        auto it=S.upper_bound({0,r});
        if (it==S.begin()) continue;
        else --it;
        if (it->x==inf) continue;
        ll y=it->y;
        rs+=t.x;
        S.erase(it);
    }
    cout<<rs;
    return 0;
}