Pagini recente » Cod sursa (job #2529569) | Cod sursa (job #2324158) | Cod sursa (job #1387613) | Cod sursa (job #457748) | Cod sursa (job #969461)
Cod sursa(job #969461)
#include <iostream>
#include <algorithm>
#include <fstream>
#include <vector>
#include <queue>
#define f first
#define s second
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int N = 100005;
long long n, x, l, sol;
typedef pair <long long, int> oi; oi v[N];
priority_queue <int> h;
bool cmp(const oi &a, const oi &b)
{
if(a.f == b.f) return a.s > b.s;
return a.f > b.f;
}
int main()
{
fin>>n>>x>>l;
for(int i=1; i<=n; i++)
{
fin>>v[i].f>>v[i].s;
v[i].f = (x - v[i].f) / l + 1;
}
sort(v+1, v+n+1, cmp);
for(int j = v[1].f, i = 1; j; --j)
{
while(i < n && j == v[i].f)
h.push(v[i++].s);
if(!h.empty())
{
sol += h.top();
h.pop();
}
}
fout<<sol;
return 0;
}