Pagini recente » Cod sursa (job #1739572) | Cod sursa (job #2881739) | Cod sursa (job #1833280)
#include<bits/stdc++.h>
#define maxT 1000005
using namespace std;
int n,x,l,d,a,t,maxt;
long long sol;
typedef struct tip
{
int lana;
bool operator<(const tip& other) const
{
return lana<other.lana;
}
};
priority_queue<tip> q;
vector<int> v[maxT];
int main()
{
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
scanf("%d%d%d",&n,&x,&l);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&d,&a);
t=1+((x-d)/l);
if(t>0) v[t].push_back(a);
maxt=max(maxt,t);
}
for(int i=maxt;i>=1;i--)
{
for(vector<int>::iterator it=v[i].begin();it!=v[i].end();it++)
{
q.push({*it});
}
sol+=1LL*q.top().lana;
q.pop();
}
printf("%lld\n",sol);
return 0;
}