Cod sursa(job #2960288)

Utilizator Luka77Anastase Luca George Luka77 Data 3 ianuarie 2023 22:58:55
Problema Lupul Urias si Rau Scor 88
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

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

struct compare
{
    long long val;
    bool operator < (const compare &num) const
    {
        return val < num.val;
    }
};

priority_queue<compare>pq;
long long n, distanta, sigma;
vector<pair<long long, long long>>v;

inline void solve()
{
    sort(v.begin(), v.end());
    long long i = v.size()-1, ans = 0;
    for(long long t = v[v.size()-1].first; t >= 0; t--)
    {
        while(v[i].first >= t && i >= 0)
            pq.push({v[i].second}), i--;
        ans += pq.top().val;
        pq.pop();
    }
    fout << ans;
}

int main()
{
    fin >> n >> distanta >> sigma;
    for(int i = 1; i <= n; ++ i)
    {
        long long x, y;
        fin >> x >> y;
        v.push_back({((distanta - x) / sigma), y});
    }
    solve();
}