Cod sursa(job #3331995)

Utilizator mariusharabariMarius Harabari mariusharabari Data 2 ianuarie 2026 18:56:40
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;

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

const int NMAX=1e5+1;
int n, x, l;
long long sum;
priority_queue <int> pq;

struct oaie{
    int d, b;
};
vector <oaie> oi;

bool comp(oaie a, oaie b){
    return a.d<b.d;
}

int main(){
    fin>>n>>x>>l;
    for(int i=1;i<=n;i++){
        oaie a;
        fin>>a.d;
        fin>>a.b;
        if(a.d<=x)
            oi.push_back(a);
    }

    sort(oi.begin(), oi.end(), comp);

    int nivel=x/l+1;

    for(int i=0;i<oi.size();i++){
        int nivela=(x-oi[i].d)/l+1;

        if(nivela<nivel){
            for(;nivel>nivela&&!pq.empty();nivel--){
                sum+=pq.top();
                pq.pop();
            }
        }

        pq.push(oi[i].b);
    }
    while(nivel&&!pq.empty()){
        sum+=pq.top();
        pq.pop();
        nivel--;
    }
    fout<<sum;

    return 0;
}