Cod sursa(job #2338812)

Utilizator Mihai_PredaPreda Mihai Dragos Mihai_Preda Data 7 februarie 2019 20:44:45
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>

using namespace std;

int main()
{
    ifstream in("lupu.in");
    int n, x, L;
    in >> n >> x >> L;
    vector<pair<int, int> > v(n);
    for(auto &x:v)
        in >> x.first >> x.second;
    in.close();

    sort(v.begin(), v.end());
    int oi = (x - v[0].first) / L;
    priority_queue<int> q;
    long long rasp = 0;
    int ind = 0;
    while(oi >= 0)
    {
        while(ind < n && (x - v[ind].first) / L >= oi)
        {
            q.push(v[ind].second);
            ind++;
        }
        if(q.empty() == false)
        {
            rasp += q.top();
            q.pop();
        }
        oi--;
    }

    ofstream out("lupu.out");
    out << rasp;
    out.close();
    return 0;
}