Cod sursa(job #2960284)

Utilizator Luka77Anastase Luca George Luka77 Data 3 ianuarie 2023 22:51:31
Problema Lupul Urias si Rau Scor 72
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
#define FOR(NUM) for(int i = 1; i <= n; ++ i)
using namespace std;

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

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

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

inline void solve()
{
    sort(v.begin(), v.end());
    int i = v.size()-1, ans = 0;
    for(int t = v[v.size()-1].first; t >= 1; 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(n)
    {
        int x, y;
        fin >> x >> y;
        v.push_back({((distanta - x) / sigma) + 1, y});
    }
    solve();
}