Pagini recente » Cod sursa (job #1713652) | Cod sursa (job #2255535) | Cod sursa (job #507920) | Cod sursa (job #981253) | Cod sursa (job #2858472)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int NMAX=100005;
int N, X, L;
ll sol;
pair<int,int> v[NMAX];
bool comp(pair<int,int> A, pair<int,int> B){
return A.first>B.first;
}
priority_queue<int> q;
int main()
{
fin>>N>>X>>L;
for(int i=1;i<=N;i++){
fin>>v[i].first>>v[i].second;
if(v[i].first>X)
v[i].first=0;
else
v[i].first=(X-v[i].first)/L+1;
}
sort(v+1,v+N+1,comp);
for(int k=v[1].first,i=1;k>=1 and i<=N;k--){
while(v[i].first==k){
q.push(v[i].second);
i++;
}
if(!q.empty()){
sol+=1LL*q.top();
q.pop();
}
}
fout<<sol;
fin.close();
fout.close();
return 0;
}