Pagini recente » Cod sursa (job #1388748) | Cod sursa (job #2307178) | Cod sursa (job #254946) | Cod sursa (job #2316403) | Cod sursa (job #2913621)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
vector<pair<int, int>> v;
multiset<int> s;
int n,x,l,d,val;
long long ans;
multiset<int>::iterator it;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int main()
{
fin >> n >> x >> l;
for(int i = 1; i <= n; i++){
fin >> d >> val;
v.push_back({(x-d)/l, val});
}
sort(v.begin(), v.end());
int i = v.size()-1;
for (int t = v[v.size()-1].first; t >= 0; t--) {
while (i >= 0 && v[i].first >= t) {
s.insert(v[i].second);
i--;
}
if (!s.empty()) {
it = s.end();
it--;
ans += *it;
s.erase(it);
}
}
fout << ans;
return 0;
}