Cod sursa(job #1794654)

Utilizator c0mradec0mrade c0mrade Data 1 noiembrie 2016 16:25:42
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.59 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");

priority_queue<int> pq;
pair<int, int> v[100100];
long long n, x, k, ans;

int main()
{
    fin >> n >> x >> k;
    for(int i = 1; i <= n; ++i)
        fin >> v[i].first >> v[i].second;

    sort(v+1, v+n+1);
    int d = 0;
    for(int i = 1; d <= x; d += k)
    {   while(i <= n && v[i].first <= d)
            pq.push(v[i++].second);
        if(!pq.empty())
        {
            ans += pq.top();
            pq.pop();
        }
    }

    fout << ans;

    return 0;
}