Pagini recente » Cod sursa (job #2170925) | Cod sursa (job #2634630) | Cod sursa (job #2534076) | Cod sursa (job #2866772) | Cod sursa (job #3004129)
#include <bits/stdc++.h>
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;
}
int main(){
read();
solve();
return 0;
}