Pagini recente » Cod sursa (job #955154) | Cod sursa (job #664301) | Cod sursa (job #1978508) | Cod sursa (job #2917742) | Cod sursa (job #2338812)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
int main()
{
ifstream in("lupu.in");
int n, x, L;
in >> n >> x >> L;
vector<pair<int, int> > v(n);
for(auto &x:v)
in >> x.first >> x.second;
in.close();
sort(v.begin(), v.end());
int oi = (x - v[0].first) / L;
priority_queue<int> q;
long long rasp = 0;
int ind = 0;
while(oi >= 0)
{
while(ind < n && (x - v[ind].first) / L >= oi)
{
q.push(v[ind].second);
ind++;
}
if(q.empty() == false)
{
rasp += q.top();
q.pop();
}
oi--;
}
ofstream out("lupu.out");
out << rasp;
out.close();
return 0;
}