Cod sursa(job #1888372)

Utilizator eusebiu_gageaGagea Eusebiu-Andrei eusebiu_gagea Data 22 februarie 2017 08:21:12
Problema Lupul Urias si Rau Scor 64
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");

#define NMAX 100000

struct Oaie{
    int dist, lana;
};

int n, D, L, mx, cost;
Oaie v[NMAX];
priority_queue <int> oi;

int compare(Oaie x, Oaie y) {
    return x.dist > y.dist;
}

int main()
{
    int i;

    f>>n>>D>>L;

    for(i = 1; i <= n; i++) {
        f>>v[i].dist>>v[i].lana;
        v[i].dist = (D - v[i].dist) / L + 1;
        mx = max(mx, v[i].dist);
    }

    sort(v + 1, v + n + 1, compare);

    i = 1;
    while(mx > 0) {
        while(v[i].dist == mx) {
            oi.push(v[i].lana);
            i++;
        }
        if(!oi.empty()) {
            cost += oi.top();
            oi.pop();
        }
        mx--;
    }

    g<<cost<<'\n';
    return 0;
}