Pagini recente » Cod sursa (job #1101003) | Cod sursa (job #1755842) | Cod sursa (job #672503) | Cod sursa (job #1242315) | Cod sursa (job #3178016)
#include <algorithm>
#include <iostream>
#include <fstream>
#include <queue>
#define int long long
using namespace std;
const int nmax = 1e5;
pair<int, int> a[5 + nmax];
signed main() {
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n, x, l;
fin >> n >> x >> l;
for (int i = 1; i <= n; i++) {
int d;
fin >> d >> a[i].first;
a[i].second = (x - d) / l;
}
sort(a + 1, a + n + 1, [&](pair<int, int> a, pair<int, int> b) {
if (a.second == b.second)
return a.first < b.first;
return a.second < b.second;
});
int left = 1, sum = 0, ans = 0;
for (int right = 1; right <= n; right++) {
while (a[right].second < right - left) {
sum -= a[left].first;
left++;
}
sum += a[right].first;
ans = max(ans, sum);
}
fout << ans << '\n';
return 0;
}