Pagini recente » Cod sursa (job #3341677) | Cod sursa (job #3324878) | Cod sursa (job #3340989) | Cod sursa (job #3316980) | Cod sursa (job #3324875)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("lupu.in");
ofstream fout ("lupu.out");
const int nmax = 1e5 + 5;
int n, x, l;
pair <int, int> v[nmax];
priority_queue <int> pq;
int main ()
{
fin >> n >> x >> l;
for (int i = 1; i <= n; i++)
fin >> v[i].first >> v[i].second;
sort(v + 1, v + n + 1);
int rez = 0;
int i = 1;
for (int dist = x / l * l; dist >= 0; dist -= l)
{
while (i <= n && v[i].first + dist <= x)
{
pq.push(v[i].second);
i++;
}
if (!pq.empty())
{
rez += pq.top();
pq.pop();
}
}
fout << rez;
return 0;
}