Cod sursa(job #3240924)

Utilizator slol003Rizea Alexandru-Gabriel slol003 Data 24 august 2024 10:09:01
Problema Lupul Urias si Rau Scor 100
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 = 100005;
priority_queue<int> Q;
struct Oaie {
    int lana, timp;
    bool operator < (const Oaie &o) {
        return timp < o.timp;
    }
};
Oaie oi[Nmax];
int main() {
    int n, X, L;
    long long sol = 0;
    fin >> n >> X >> L;
    for(int i = 1; i <= n; i++)
        {
            int dist;
            fin >> dist >> oi[i].lana;
            oi[i].timp = (X - dist) / L;
        }
    sort(oi + 1, oi + n + 1);

    int p = n, T = oi[n].timp;

    while(T >= 0)
        {
            while(p > 0 && oi[p].timp >= T)
            {
                Q.push(oi[p].lana);
                p--;
            }
            if(!Q.empty())
            {
                sol += Q.top();
                Q.pop();
            }
            T--;
        }

    fout << sol;
    return 0;
}