Pagini recente » Cod sursa (job #3213373) | Cod sursa (job #784896) | Cod sursa (job #2825067) | Cod sursa (job #345649) | Cod sursa (job #1311651)
#include<stdio.h>
#include<algorithm>
#include<queue>
using namespace std;
struct lup
{
int d;
int p;
int t;
}a[100001];
int i,j,k,m,u,t,L,x,dist,n;
priority_queue<int> q;
bool cmp (lup o1, lup o2)
{
return (o1.d<o2.d);
}
int main()
{
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
scanf("%d%d%d",&n,&dist,&x);
for (i=1; i<=n; ++i)
{
scanf("%d%d",&a[i].d,&a[i].p);
//a[i].t=(dist-a[i].d)/x;
}
sort(a+1,a+n+1,cmp);
int d1;
long long sol=0;
for (i=1,d1=0; i<=n && d1<=dist; d1+=x)
{
while (i<=n && a[i].d<=d1)
{
q.push(a[i].p);
++i;
}
if (q.size())
{
sol+=q.top();
q.pop();
}
}
printf("%lld",sol);
return 0;
}