Cod sursa(job #3168222)

Utilizator TheEpicWipedCreaVlad Chirita Alexandru TheEpicWipedCrea Data 11 noiembrie 2023 19:36:59
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 in  ("lupu.in");
ofstream out("lupu.out");

#define maxN 100000

struct ura{
    int wool,time;
    bool operator<(const ura &x) {
        return time<x.time;
    }
}v[maxN+1];

priority_queue<int> q;

int main(){
    int n,x,l;
    in>>n>>x>>l;
    for(int i=1;i<=n;i++){
        int d;
        in>>d>>v[i].wool;
        v[i].time=(x-d)/l;
    }
    sort(v+1,v+n+1);
    int p=n,t=v[n].time;
    long long sol=0;

    while(t>=0){
        while(p>=0 && v[p].time>=t){
            q.push(v[p].wool);
            p--;
        }

        if(!q.empty()){
            sol+=q.top();
            q.pop();
        }
        t--;
    }

    out<<sol;

    return 0;
}