Pagini recente » Statistici Radulescu Adrian (Churchil) | Cod sursa (job #1172290) | Cod sursa (job #3215083) | Cod sursa (job #652803) | Cod sursa (job #1282133)
#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
int n,i,j,p,q,nr,l,x,lv,Max;
struct nod
{
int x;
int y;
}v[100005];
priority_queue< int >Q;
long long sol;
int cmp(const nod a,const nod b)
{
return a.x>b.x;
}
int main()
{
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
scanf("%d %d %d",&n,&x,&l);
for (i=1;i<=n;i++)
{
scanf("%d %d",&p,&q);
if (p<=x)
{
v[++lv].x=(x-p)/l;
v[lv].y=q;
Max=max(Max,(x-p)/l);
}
}
sort(v+1,v+lv+1,cmp); p=1;
for (i=Max;i>=0;i--)
{
while (v[p].x==i)
Q.push(v[p].y),p++;
if (Q.size())
{
sol+=Q.top();
Q.pop();
}
}
printf("%lld",sol);
return 0;
}