Pagini recente » Cod sursa (job #75394) | Cod sursa (job #365109) | Cod sursa (job #2303481) | Cod sursa (job #3128905) | Cod sursa (job #3222516)
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
#define int long long
vector < int > dp;
vector < pair < int , int > > v;
set < int > s;
signed main()
{
int n,x,l,ans=0;
cin>>n>>x>>l;
dp.resize(n+1);
v.resize(n+1);
for(int i=1;i<=n;i++)
cin>>v[i].first>>v[i].second;
sort(v.begin()+1,v.end());
int best=0,nextl=0;
for(int i=1;i<=n;i++)
{
if(v[i].first>x || i==n){
if(s.size())
{
best=*s.rbegin();
ans+=best;
}
break;
}
while(s.size() && v[i].first>nextl)
{
best=*s.rbegin();
nextl=nextl+l;
ans+=best;
s.erase(best);
}
s.insert(v[i].second);
//cout<<i<<" "<<ans<<'\n';
}
cout<<ans;
return 0;
}