Cod sursa(job #3140275)

Utilizator dobreraduDobre Radu Fabian dobreradu Data 5 iulie 2023 11:21:44
Problema Lupul Urias si Rau Scor 72
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
const int NMAX = 100001;
struct Radu{
    int dist, lana;
};
Radu v[NMAX];
bool cmp( Radu a, Radu b ){
    return a.dist > b.dist;
}
priority_queue <int> pq;
int main()
{
    int n, x, l, maxi = 0;
    in >> n >> x >> l;
    for( int i = 0; i < n; i++ ){
        in >> v[i].dist >> v[i].lana;
        v[i].dist = (x - v[i].dist) / l;
        maxi = max( maxi, v[i].dist );
    }
    sort( v, v + n, cmp );
    int j = 0, ans = 0;
    for( int i = 0; i <= maxi; i++ ){
        while( j < n-1 && v[j].dist == v[j+1].dist ){
            pq.push(v[j].lana);
            j++;
        }
        pq.push(v[j].lana);
        j++;
        ans += pq.top();
        pq.pop();
    }
    out << ans;
    return 0;
}