Cod sursa(job #2305184)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 19 decembrie 2018 15:53:53
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

typedef long long ll;

int main()
{
    freopen ("lupu.in", "r", stdin);
    freopen ("lupu.out", "w", stdout);
    int n, x, l;
    scanf("%d %d %d", &n, &x, &l);
    vector<pair<int, int>>v (n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d %d", &v[i].first, &v[i].second);
    }
    sort (v.begin(), v.end());
    priority_queue<int>q;
    ll ans = 0LL;
    int p = 0;
    for (int d = 0; d <= x; d += l)
    {
        while (p < n && v[p].first <= d)
        {
            q.push (v[p].second);
            p++;
        }
        if (!q.empty())
        {
            ans += q.top();
            q.pop();
        }
    }
    cout << ans;
    return 0;
}