Cod sursa(job #781095)

Utilizator Victor10Oltean Victor Victor10 Data 23 august 2012 11:56:26
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <algorithm>
#include <queue>
#define dst first
#define lan second

using namespace std;

pair <int, int> dstlan [100005];
priority_queue <int, vector <int>, less <int> > heap;

bool cmp (pair <int, int> a, pair <int, int> b) {
    return a . dst < b . dst;
}

int main()
{
    ifstream f("lupu.in");
    ofstream g("lupu.out");

    int n, x, l, i, j = 1;
    long long answ = 0;

    f >> n >> x >> l;

    for (i = 1; i <= n; ++ i) {
        f >> dstlan [i] . dst >> dstlan [i] . lan;
    }

    sort (dstlan + 1, dstlan + n + 1, cmp);

    for (i = 0; i <= x && j <= n; i += l) {
        for (; dstlan [j] . dst <= i && j <= n; ++ j) {
            heap . push (dstlan [j] . lan);
        }
        if (heap . size ()) {
            answ += heap . top ();
            heap . pop ();
        }
    }

    g << answ;
}