Cod sursa(job #781093)

Utilizator luca.boieruBoieru Luca luca.boieru Data 23 august 2012 11:39:32
Problema Lupul Urias si Rau Scor 68
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <cstdio>
using namespace std;

pair <int, int> p[100005];

priority_queue < int, vector <int>, less <int> > heap;

int main()
{

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


    int n, x, l;

    cin >> n >> x >> l;

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

    sort(p + 1, p + n + 1);

    int sum (0);
    int j = 1;
    for(int i = 0; i <= x; i += l){

        for(; p[j].first <= i && j <= n; ++ j){
            heap.push(p[j].second);
        }
        if(heap.size()){
            sum += heap.top();
            heap.pop();
        }
    }

    cout << sum;
    return 0;
}