Pagini recente » Cod sursa (job #1616222) | Cod sursa (job #2061427) | Cod sursa (job #678393) | Cod sursa (job #2585572) | Cod sursa (job #2776706)
#include <bits/stdc++.h>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
const int INF = (1 << 30), NMAX(100005), VMAX(1000000);;
using ll = long long;
using PII = pair<int, int>;
int cat[NMAX], fr[NMAX];
int main()
{
int n, x, l;
cin >> n >> x >> l;
vector<pair<int, int> > vec;
for(int i = 1; i <= n; ++i){
int d, c;
cin >> d >> c;
if(d <= x)
vec.push_back({((x - d) / l) + 1, c});
}
sort(vec.begin(), vec.end(), greater<PII>());
priority_queue<int> pq;
ll rez = 0;
int ind = 0;
for(int i = vec[0].first; i >= 1; --i){
while(ind < vec.size() && vec[ind].first == i)
pq.push(vec[ind].second), ++ind;
if(!pq.empty())
rez += pq.top(), pq.pop();
}
cout << rez << '\n';
return 0;
}