Cod sursa(job #2273661)

Utilizator andreisontea01Andrei Sontea andreisontea01 Data 31 octombrie 2018 20:28:17
Problema Lupul Urias si Rau Scor 8
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <iostream>
#include <queue>
#include <algorithm>

using namespace std;

const int MAXN = 100005;

#define st first
#define nd second

pair<int, int> oi[MAXN];
priority_queue<pair<int, int> > heap;

int main()
{
    ifstream fin("lupu.in");
    ofstream fout("lupu.out");
    int n, x, l;
    fin >> n >> x >> l;
    for(int i = 1; i <= n; ++i)
        fin >> oi[i].st >> oi[i].nd;
    sort(oi + 1, oi + n + 1);
    long long tot = 0;
    int pos = 1, out = n + 1;
    while(x >= 0){
        pos = 1;
        while(pos <= n && oi[pos].st <= x){
            if(pos != out)
                heap.push({oi[pos].nd, pos});
            pos++;
        }
        tot += heap.top().st;
        out = heap.top().nd;
        while(!heap.empty())
            heap.pop();
        x -= l;
    }
    fout << tot;
    return 0;
}