Cod sursa(job #3140283)

Utilizator UengineDavid Enachescu Uengine Data 5 iulie 2023 11:55:23
Problema Lupul Urias si Rau Scor 16
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

ifstream cin("lupu.in");
ofstream cout("lupu.out");

struct oaie{
    int dist;
    int blana;
    bool operator <(const oaie &other)const{
        return dist < other.dist;
    }
};

vector <oaie> oi;
priority_queue <int> pq;

int main() {
    int n, x, l;
    long long sum = 0;
    cin >> n >> x >> l;
    for(int i = 0; i < n; i++){
        oaie coaie;
        cin >> coaie.dist >> coaie.blana;
        oi.push_back(coaie);
    }
    sort(oi.begin(), oi.end());
    int nivel = (x - oi[0].dist) / l;

    for(int i = 0; i < n; i++) {
        int candidateNivel = (x - oi[i].dist) / l;
        if (candidateNivel < nivel) {
            nivel = (x - oi[i].dist) / l;
            sum += pq.top();
            pq.pop();
        }
        pq.push(oi[i].blana);
    }
    sum += pq.top();
//    pq.pop();
    cout << sum;
    return 0;
}