Pagini recente » Cod sursa (job #2618807) | Cod sursa (job #799168) | Cod sursa (job #2454185) | Cod sursa (job #1643449) | Cod sursa (job #2498457)
#include <fstream>
#include <iostream>
#include <queue>
#include <algorithm>
#define NMAX 100000
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
long long n, m, x, l;
long long sol;
priority_queue <long long> pq;
pair <long long, long long> v[NMAX+1000];
inline bool mycmp(pair <long long, long long> a, pair <long long, long long> b)
{ return a.first > b.first;
}
int main()
{
f >> n >> x >> l;
for(long long i=1; i<=n; i++)
{ long long a, b;
f >> a >> b;
if(a <= x)
{ v[i].first = (x - a) / l + 1;
v[i].second = b;
m++;
}
}
n = m;
sort(v+1, v+n+1, mycmp);
long long i=1;
while(i <= n)
{ pq.push(v[i].second);
while(i <= n && v[i].first == v[i+1].first) pq.push(v[i+1].second), i++;
i++;
for(long long j=1; j<=v[i-1].first-v[i].first; j++)
{ long long val = pq.top();
pq.pop();
sol += val;
}
}
g << sol << '\n';
return 0;
}