Cod sursa(job #2325229)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 22 ianuarie 2019 12:11:50
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define NMAX 200003
using namespace std;
ifstream fin ("lupu.in");
ofstream fout ("lupu.out");
int n, L, X, nr;
long long sum;
struct Oaie{
    unsigned int dist, lana;
    bool operator() (const Oaie &A, const Oaie &B){
        return A.lana < B.lana;
    }
}V [NMAX];
priority_queue <Oaie, vector <Oaie>, Oaie> pq;
bool cmp (Oaie A, Oaie B){
    return A.dist < B.dist;
}
int main (){
    fin >> n >> X >> L;
    for (int i = 1; i <= n; i ++)
        fin >> V [i].dist >> V [i].lana;
    sort (V + 1, V + n + 1, cmp);
    for (int ind = 1, dist = X % L; dist <= X; dist += L){
        for (; V [ind].dist <= dist && ind <= n; ind ++)
            pq.push (V [ind]);
        if (!pq.empty ())
            sum += pq.top ().lana, pq.pop ();
    }
    fout <<  sum << '\n';
    return 0;
}