Pagini recente » Cod sursa (job #2665251) | Cod sursa (job #2938637) | Cod sursa (job #1691048) | Cod sursa (job #96793) | Cod sursa (job #472438)
Cod sursa(job #472438)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
#define d first
#define c second
const int SIZE = 100001;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
void Read();
void Solve();
void Write();
int n, x, l;
long long s;
pair<int, int> v[SIZE];
priority_queue<int> heap;
int main()
{
Read();
Solve();
Write();
}
void Read()
{
fin >> n >> x >> l;
for (int i = 1; i <= n; ++i)
fin >> v[i].d >> v[i].c;
}
void Solve()
{
sort(v + 1, v + n + 1);
int up = x % l, lim = 1;
for (int i = up; i <= x; i += l)
{
while (lim <= n && v[lim].d <= i)
heap.push(v[lim].c), ++lim;
if (!heap.empty())
{
s += heap.top();
heap.pop();
}
}
}
void Write()
{
fout << s;
}