Pagini recente » Cod sursa (job #1070223) | Cod sursa (job #432488) | Cod sursa (job #1920750) | Cod sursa (job #2031049) | Cod sursa (job #3342731)
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5;
priority_queue< pair<long long,long long> > q;
pair<long long,long long> v[NMAX+5];
bool cmp(pair<long long,int> a, pair<long long,int> b){
return a.second<b.second;
}
int main()
{
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n,x,l;fin>>n>>x>>l;
for(int i=1;i<=n;i++){
fin>>v[i].second>>v[i].first;
}
sort(v+1,v+n+1,cmp);
int ult=1,gasit=0;
for(int i=1;i<=n;i++){
if(v[i].second<=x){
q.push(v[i]);
}
else{ult=i;gasit=1;break;}
}
if(gasit==0){ult=n+1;}
int total=0,cnt=1;
while(!q.empty()){
pair<long long ,long long>a;
while(!q.empty()){
a=q.top();q.pop();
if(a.second+(cnt-1)*l<=x){
total+=a.first;break;
}
}
gasit=0;
for(int i=ult;i<=n;i++){
if(v[i].second+cnt*l<=x){
q.push(v[i]);
}
else{
ult=i;break;
}
}
if(gasit==0){ult=n+1;}
cnt++;
}
fout<<total<<'\n';
return 0;
}