Pagini recente » Cod sursa (job #2063184) | Cod sursa (job #2555825) | Cod sursa (job #45841) | Cod sursa (job #1626802) | Cod sursa (job #2532292)
#include <bits/stdc++.h>
#define Nmax 100005
#define ll long long
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
int N, X, L;
ll ans;
priority_queue<int> Q;
struct sheep{
int d, nr;
};
sheep v[Nmax];
bool cmp(sheep a, sheep b) {
if (a.d == b.d) return a.nr > b.nr;
return a.d < b.d;
}
int main()
{
f >> N >> X >> L;
for (int i = 1; i <= N; ++i)
f >> v[i].d >> v[i].nr;
sort(v + 1, v + N + 1, cmp);
int pos = 0;
for (int i = N; i >= 1; --i)
if (v[i].d <= X) {
pos = i;
break;
}
int i = pos, len = L;
while (i >= 1) {
int j = i;
while (j >= 1 && v[j].d + len > X)
Q.push(v[j].nr), --j;
if (!Q.empty()) ans += Q.top();
while (!Q.empty())
Q.pop();
len += L;
i = j;
}
g << ans << '\n';
return 0;
}