Cod sursa(job #3272910)

Utilizator Barbu_MateiBarbu Matei Barbu_Matei Data 31 ianuarie 2025 15:41:12
Problema Lupul Urias si Rau Scor 12
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

class comp {
public:
    bool operator()(pair<int, int> a, pair<int, int> b) {
        if (1ll * (a.first + a.second) / 2 == 1ll * (b.first + b.second) / 2) {
            return a.second < b.second;
        }
        return 1ll * (a.first + a.second) / 2 < 1ll * (b.first + b.second) / 2;
    }
};

int n, x, l;
priority_queue<pair<int, int>, vector<pair<int, int>>, comp> q;

int main() {
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    cin >> n >> x >> l;
    for (int i = 1; i <= n; ++i) {
        int d, c;
        cin >> d >> c;
        q.push({d, c});
    }
    long long dist = 0, ans = 0;
    while (!q.empty()) {
        if (x >= 1ll * q.top().first + dist) {
            ans += q.top().second;
            dist += l;
        }
        q.pop();
    }
    cout << ans;
}