Pagini recente » Cod sursa (job #2895760) | Cod sursa (job #1361222) | Cod sursa (job #2449346) | Cod sursa (job #880556) | Cod sursa (job #3235215)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
int lana,t,m,n,last,p,sol,x,d;
priority_queue<int>q;
struct oaie{
int et,l;
}v[100002];
bool cmp(oaie a,oaie b){
return a.et>b.et;
}
int main()
{
cin>>n>>x>>d;
for(int i=1;i<=n;i++){
cin>>t>>lana;
if(t>x)
continue;
v[++m]={(x-t)/d,lana};
last=max(last,(x-t)/d);
}
sort(v+1,v+m+1,cmp);
p=1;
for(int i=last;i>=0;i--){
while(p<=m&&v[p].et==i)
q.push(v[p++].l);
if(!q.empty()){
sol+=q.top();
q.pop();
}
}
cout<<sol;
return 0;
}