Cod sursa(job #1402364)

Utilizator cautionPopescu Teodor caution Data 26 martie 2015 15:23:23
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>
#include <queue>
#define NMAX 100005

using namespace std;

long n, x, l, t;
vector<long> v[NMAX];
priority_queue <long> pq;

int main () {
    ifstream in("lupu.in");
    ofstream out("lupu.out");
    in>>n>>x>>l;
    long a, b, aux;
    long long sol = 0;
    for(long i=1; i<=n; ++i) {
        in>>a>>b;
        if(x>a)
        {
            aux=(x-a)/l,
            v[aux].push_back(b),
            t = max(t, aux);
        }
    }
    for (long i= t; i>=0; --i) {
        aux=v[i].size();
        for(long j=0; j<aux; ++j) pq.push(v[i][j]);
        if (!pq.empty())
        {
            sol+=pq.top();
            pq.pop();
        }
    }
    out<<sol<<'\n';
    return 0;
}