Cod sursa(job #2444342)

Utilizator IoanaDraganescuIoana Draganescu IoanaDraganescu Data 31 iulie 2019 12:00:59
Problema Lupul Urias si Rau Scor 64
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>

using namespace std;

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

struct oaie{
    int zona, lana;
}v[100005];
priority_queue <int> q;
int n, x, l;

void read(){
    fin >> n >> x >> l;
    for (int i = 1; i <= n; i++){
        int d;
        fin >> d >> v[i].lana;
        v[i].zona = (x - d) / l;
    }
}

int compare(oaie a, oaie b){
    return a.zona > b.zona;
}

int main(){
    read();
    sort(v + 1, v + n + 1, compare);
    int ind = 1, sol = 0;
    for (int i = x / l; i >= 0; i--){
        while (ind <= n && v[ind].zona == i){
            q.push(v[ind].lana);
            ind++;
        }
        sol += q.top();
        q.pop();
    }
    fout << sol << '\n';
    return 0;
}