Pagini recente » Cod sursa (job #2858091) | Cod sursa (job #178980) | Cod sursa (job #736788) | Cod sursa (job #813635) | Cod sursa (job #3235220)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#define DIM 100001
#include <algorithm>
using namespace std;
ifstream fin ("lupu.in");
ofstream fout("lupu.out");
priority_queue<int>Q;
struct elem
{
int et;
int l;
}v[DIM];
int n,x,d,l,dis,k,cnt;
long long sol;
bool cmp(elem a, elem b)
{
return a.et<b.et;
}
int main()
{
fin>>n>>x>>d;
for(int i=1;i<=n;i++)
{
fin>>dis>>l;
if(dis>x)
continue;
v[++k].et=(x-dis)/d;
v[k].l=l;
}
sort(v+1,v+k+1,cmp);
cnt=k;
for(int i=v[k].et;i>=0;i--)
{
while(cnt>=1 && v[cnt].et==i)
{
Q.push(v[cnt].l);
cnt--;
}
if(!Q.empty())
{
sol+=1LL*Q.top();
Q.pop();
}
}
fout<<sol;
return 0;
}