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