Cod sursa(job #3326699)

Utilizator Andrei-Dani-10Pisla Andrei Daniel Andrei-Dani-10 Data 30 noiembrie 2025 00:07:02
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

#include <utility>
#define x first
#define y second

#include <queue>
#include <algorithm>

using namespace std;

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

typedef pair <int, int> pii;
const int nmax = 1e5;
int n, xx, kklength;
pii a[nmax + 2];

int kkdiv;

int64_t solve(){
    priority_queue <int> pq;

    int64_t bestt = 0;

    for(int itq = 0, idx = 1; itq <= kkdiv; itq++){
        for(; idx <= n && a[idx].x <= kklength; idx++)
            pq.push(a[idx].y);

        if(!pq.empty()){
            bestt += pq.top(); pq.pop();
        }

        kklength += xx;
    }

    return bestt;
}

int main(){

    in>>n>>kklength>>xx;

    kkdiv = kklength / xx;
    kklength -= (xx * kkdiv);

    for(int i = 1; i <= n; i++){
        in>>a[i].x>>a[i].y;
    }

    sort(a + 1, a + 1 + n); ///after dist

    out<<solve()<<"\n";

    return 0;
}