Cod sursa(job #3227132)

Utilizator Toni07Stoica Victor Toni07 Data 25 aprilie 2024 21:25:18
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ("lupu.in");
ofstream g ("lupu.out");
const int Vmax = 100001;

struct oaie{
    long long dist, val;
}oi[Vmax];
long long n, distlup, adaos, s;
priority_queue<long long> Q;

bool cmp (const oaie &a, const oaie &b){
    return (a.dist < b.dist);
}
int main(){

    f >> n >> distlup >> adaos;
    for(int i = 1; i <= n; ++i){
        int dist, val;
        f >> dist >> val;
        oi[i].dist = (distlup - dist) / adaos;
        oi[i].val = val;
    }
    sort(oi + 1, oi + n + 1, cmp);
    long long a = oi[n].dist, cnt = n;
    while(a >=0){
        while(cnt && a <= oi[cnt].dist)
            Q.push(oi[cnt--].val);
        if(!Q.empty()){
            s += Q.top();
            Q.pop();
        }
        a--;
    }
    g << s;
    return 0;
}