Pagini recente » Cod sursa (job #2691363) | Cod sursa (job #1174653) | Cod sursa (job #9601) | Cod sursa (job #1064894) | Cod sursa (job #982401)
Cod sursa(job #982401)
#include <algorithm>
#include <fstream>
#include <vector>
#include <queue>
#define Max(a,b) (a>b?a:b)
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
int n,X,L;
long long sol,t;
vector<pair<long,long> > v;
priority_queue<long long,vector<long long> > h;
int main(void){
register int i;
long long x,y;
f>>n>>X>>L;
for(i=0;i<n;i++){
f>>x>>y;
v.push_back(make_pair((X-x)/L+1,y));
t=Max(t,v[i].first);
}
sort(v.begin(),v.end());
i=n-1;
for(;t>0;t--){
while(v[i].first>=t && i>-1){
h.push(v[i].second);
i--;
}
sol+=h.top();
h.pop();
}
g<<sol;
f.close();
g.close();
return 0;
}