Pagini recente » Cod sursa (job #2074081) | Cod sursa (job #1762129) | Cod sursa (job #1726138) | Cod sursa (job #2881964) | Cod sursa (job #2645890)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
struct data {
unsigned int dist,fluff;
bool operator <(const data& x) const {
return dist<x.dist;
}
} v[100001];
priority_queue<int> pq;
int main()
{
unsigned int n,margin,step,len,sum;
cin>> n >> margin >> step;
for(int i=0; i<n; i++)
cin >> v[i].dist >> v[i].fluff;
v[n].dist=(1LL<<31);
sort(v,v+n);
len=sum=0;
for(int limit=margin%step; limit<=margin; limit+=step) {
while(v[len].dist<=limit)
pq.push(v[len++].fluff);
sum+=pq.top();
pq.pop();
}
cout << sum <<'\n';
return 0;
}