Cod sursa(job #1463396)

Utilizator lflorin29Florin Laiu lflorin29 Data 20 iulie 2015 21:06:51
Problema Lupul Urias si Rau Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <queue>
#include <algorithm>
#include <fstream>
using namespace std;

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

const int wolf = 100000;
int n, x, l, AF;

#define F first
#define S second
vector < pair <int, int> > lup;
priority_queue <int> RP;

//auto Comp = [](const pair <int, int> &a, const pair <int, int> &b) {
 //   return (a.F > b.F);
//};

int main(){
    fin >> n >> x >> l;
    lup.resize(n);
    for (int i = 0; i < n; i++)
        fin >> lup[i].F >> lup[i].S;
    sort(lup.begin(), lup.end());
    int T = (x - lup[0].F) / l;
    long long p = 0;
    //fout << (1 << 31) - 1 << "\n" ;
    for (; T >= 0; -- T ) {
        while (p < n and x - lup[p].F / l == T )
              RP.push(lup[p ++ ].S);
        if (!RP.empty())
                AF += RP.top(), RP.pop();
    }
    fout << AF;
    return 0;
}