Pagini recente » Cod sursa (job #2735254) | Cod sursa (job #630988) | Cod sursa (job #2241250) | Cod sursa (job #621260) | Cod sursa (job #2832233)
#include <algorithm>
#include <fstream>
#include <queue>
using namespace std;
struct Oaie {
int lana, timp;
} v[100005];
priority_queue<int> H;
int cmp(Oaie a, Oaie b) { return a.timp > b.timp; }
int main() {
ifstream cin("lupu.in");
ofstream cout("lupu.out");
int n, x, l, dist, maxt = 0;
cin >> n >> x >> l;
for (int i = 1; i <= n; i++) {
cin >> dist >> v[i].lana;
v[i].timp = (x - dist) / l + 1;
maxt = max(maxt, v[i].timp);
}
sort(v + 1, v + n + 1, cmp);
int j = 1, suml = 0;
for (int i = maxt; i >= 1; i--) {
while (j <= n && v[j].timp == i)
H.push(v[j++].lana);
if (H.size() > 0) {
suml += H.top();
H.pop();
}
}
cout << suml;
return 0;
}