Cod sursa(job #3274339)

Utilizator Barbu_MateiBarbu Matei Barbu_Matei Data 6 februarie 2025 13:16:58
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>
using namespace std;

struct sheep {
    int d, c;
} v[100001];

bool comp(sheep a, sheep b) {
    return a.d < b.d;
}

int n, x, l;

int main() {
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    cin >> n >> x >> l;
    for (int i = 1; i <= n; ++i) {
        cin >> v[i].d >> v[i].c;
    }
    sort(v + 1, v + n + 1, comp);
    priority_queue<int> q;
    int k = 0;
    long long sum = 0;
    for (int i = 1; i <= n; ++i) {
        if (v[i].d <= k) {
            q.push(v[i].c);
        } else {
            if (!q.empty()) {
                sum += q.top();
                q.pop();
            }
            --i;
            k += l;
            if (k > x) {
                cout << sum;
                return 0;
            }
        }
    }
    while (!q.empty() && k <= x) {
        sum += q.top();
        q.pop();
        k += l;
    }
    cout << sum;

}