Pagini recente » Cod sursa (job #3248682) | Cod sursa (job #3289500) | Cod sursa (job #3284249) | Cod sursa (job #3283420) | Cod sursa (job #3273291)
#include <bits/stdc++.h>
using namespace std;
int n, x, l;
long long dist = 0;
class comp {
public:
bool operator()(pair<int, int> a, pair<int, int> b) {
if (a.first + dist + l > x && b.first + dist + l <= x) {
return false;
} else if (a.first + dist + l <= x && b.first + dist + l > x) {
return true;
} else if (a.first + dist + l > x && b.first + dist + l > x) {
return a.second < b.second;
}
}
};
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 ans = 0;
while (!q.empty()) {
if (x >= q.top().first + dist) {
ans += q.top().second;
dist += l;
}
q.pop();
}
cout << ans;
}