Pagini recente » Cod sursa (job #2750093) | Cod sursa (job #727043) | Cod sursa (job #877308) | Cod sursa (job #2684509) | Cod sursa (job #3004134)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int NMAX = 1e5+5;
int n,x,l,suma,query;
struct oaie{
int l,d;
bool operator < (const oaie & a) const{
return l<a.l;
}
}v[NMAX];
priority_queue<oaie>Q;
void read(){
fin>>n>>x>>l;
for(int i=1;i<=n;++i){
fin>>v[i].d>>v[i].l;
if(v[i].d<=x)
suma+=v[i].l;
}
}
inline bool cmp(oaie A,oaie B){
return A.d<B.d;
}
void solve(){
if(l==0){
fout<<suma;
return;
}
sort(v+1,v+n+1,cmp);
int cat=x%l,i=1;
while(cat<=x){
for(;i<=n && v[i].d<=cat;++i)
Q.push(v[i]);
if(!Q.empty()){
query+=Q.top().l;
Q.pop();
}
cat+=l;
}
fout<<query;
}
int32_t main(){
read();
solve();
return 0;
}