Cod sursa(job #2321375)

Utilizator Corneliu10Dumitru Corneliu Corneliu10 Data 15 ianuarie 2019 23:49:43
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

struct Oaie {
    long long lana, poz;
};

vector<Oaie> oi;
priority_queue<long long> oiPrinse;

bool compare(Oaie a, Oaie b) {
    return a.poz < b.poz;
}

int main()
{
    long long N, X, L;
    ifstream f("lupu.in");
    ofstream g("lupu.out");

    f>>N>>X>>L;
    oi.resize(N);
    for (int i = 0; i < N; ++i) {
        f>>oi[i].poz>>oi[i].lana;
    }

    sort(oi.begin(), oi.end(), compare);

    long long nrIncercari = X % L, i = 0, sm = 0;

    while(nrIncercari <= X) {
        for(; i < N && oi[i].poz <= nrIncercari; ++i)
            oiPrinse.push(oi[i].lana);

        if (!oiPrinse.empty()) {
            sm += oiPrinse.top();
            oiPrinse.pop();
        }

        nrIncercari += L;
    }

    g<<sm;
    f.close();
    g.close();
}