Pagini recente » Istoria paginii runda/road_to_ioi_2 | Cod sursa (job #2702389) | Rezultatele filtrării | Diferente pentru propuneri/6-arhiva-educationala intre reviziile 8 si 16 | Cod sursa (job #3272912)
#include <bits/stdc++.h>
using namespace std;
class comp {
public:
bool operator()(pair<int, int> a, pair<int, int> b) {
if (1ll * (a.first + a.second) / 2 == 1ll * (b.first + b.second) / 2) {
if (a.first == b.first) {
return a.second < b.second;
}
return a.first < b.first;
}
return 1ll * (a.first + a.second) / 2 < 1ll * (b.first + b.second) / 2;
}
};
int n, x, l;
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 dist = 0, ans = 0;
while (!q.empty()) {
if (x >= 1ll * q.top().first + dist) {
ans += q.top().second;
dist += l;
}
q.pop();
}
cout << ans;
}