Pagini recente » Cod sursa (job #143829) | Cod sursa (job #1752406) | Cod sursa (job #1365622) | Cod sursa (job #3246346) | Cod sursa (job #2145252)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
#define cin fin
#define cout fout
#define int long long
priority_queue<int,vector<int>,greater<int>> H;
vector<pair<int,int> > V;
int n,D,L;
signed main() {
cin >> n >> D >> L;
V.resize(n);
for(int i=0;i<n;++i) {
cin >> V[i].first >> V[i].second;
}
sort(V.begin(),V.end());
for(int i = n-1;i>=0;--i) {
if(V[i].first > D) continue;
int sz = (D - V[i].first) / L + 1;
if(sz > H.size()) H.push(V[i].second);
else if(H.top() < V[i].second) {
H.pop();
H.push(V[i].second);
}
}
int sum = 0;
while(!H.empty()) {
sum += H.top();
H.pop();
}
cout << sum << '\n';
return 0;
}