Cod sursa(job #3240634)

Utilizator AlexPlesescuAlexPlesescu AlexPlesescu Data 18 august 2024 23:07:00
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;

const int MAX = 3 * 1e5;
int N, X, L;
pair<int, int> A[MAX + 3];
long long ans;
priority_queue<int>pq;

int main() {
    freopen("lupu.in", "r", stdin);
    freopen("lupu.out", "w", stdout);

    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(false);

    cin >> N >> X >> L;

    for(int i = 1; i <= N; i++) {
        cin >> A[i].first >> A[i].second;
    }   

    sort(A + 1, A + N + 1);

    int i = 1;
    for(int T = X % L; T <= X; T += L) {
        while(i <= N && A[i].first <= T) {
            pq.push(A[i].second);
            i++;
        }

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

    cout << ans;
}