Cod sursa(job #152574)
#include <stdio.h>
#include <stdlib.h>
int n, h[100002], x, l;
long long suma;
typedef struct
{
int d, x;
} oaie;
oaie v[100002];
int cmp(const void *a, const void *b)
{
int x = *(int*)a, y = *(int*)b ;
return v[y].d - v[x].d;
}
int main()
{
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
int i, pas = 1, max, ok;
scanf("%d %d %d", &n, &x, &l);
for (i = 0; i < n; i++)
{
scanf("%d %d", &v[i].d, &v[i].x);
h[i] = i;
}
qsort(h,n,sizeof(int),cmp);
i = 0;
while (1)
{
max = 0; ok = 0;
while (v[h[i]].d > x - (pas * l) && i < n)
{
if (max < v[ h[i] ].x) max = v[ h[i] ].x;
i++;
ok = 1;
}
suma += max;
pas++;
if (i >= n || !ok) break;
}
printf("%lld\n",suma);
return 0;
}