Mai intai trebuie sa te autentifici.
Cod sursa(job #2321369)
Utilizator | Data | 15 ianuarie 2019 23:45:23 | |
---|---|---|---|
Problema | Lupul Urias si Rau | Scor | 72 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <bits/stdc++.h>
using namespace std;
struct Oaie {
public:
long long lana, poz;
};
vector<Oaie> oi;
priority_queue<long long> oiPrinse;
int compare(Oaie a, Oaie b) {
return a.poz < b.poz;
}
int main()
{
int N, X, L;
freopen("lupu.in", "r", stdin);
freopen("lupu.out", "w", stdout);
cin>>N>>X>>L;
oi.resize(N);
for (int i = 0; i < N; ++i) {
cin>>oi[i].poz>>oi[i].lana;
}
sort(oi.begin(), oi.end(), compare);
int 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;
}
cout<<sm;
}