Cod sursa(job #3151546)

Utilizator Radu_MocanasuMocanasu Radu Radu_Mocanasu Data 21 septembrie 2023 18:58:12
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct oaie{
    int r,l;
}v[100005];
priority_queue <int> pq;
bool comp(oaie a, oaie b){
    if(a.r == b.r) return a.l < b.l;
    return a.r < b.r;
}
int main()
{
    int n,i,j,x,l,d;
    long long s = 0;
    fin >> n >> x >> l;
    for(i = 1; i <= n; i++){
        fin >> d >> v[i].l;
        v[i].r = (x - d) / l + 1;
    }
    sort(v + 1, v + n + 1, comp);
    i = n;
    for(j = x / l + 1; j >= 1; j--){
        while(v[i].r >= j && i >= 1){
            pq.push(v[i].l);
            i--;
        }
        if(!pq.empty()){
            s += pq.top();
            pq.pop();
        }
    }
    fout << s;
    return 0;
}