def main():

    import sys

    from collections import deque

    from operator import itemgetter

    b=sys.stdin.buffer

    n,d,a=list(map(int,b.readline().split()))

    m=list(map(int,b.read().split()))

    p,q=deque(),deque()

    f,g=p.popleft,q.popleft

    s=b=0

    for x,h in sorted(zip(m,m),key=itemgetter(0)):

        while p and p[0]<x:

            f()

            b-=g()

        h-=b

        t=0--h//a

        if t>0:

            s+=t

            b+=t*a

            p+=x+d+d,

            q+=t*a,

    print(s)

main()
def main():

    import sys

    from collections import deque

    from operator import itemgetter

    b=sys.stdin.buffer

    n,d,a=list(map(int,b.readline().split()))

    m=list(map(int,b.read().split()))

    p,q=deque(),deque()

    pl,ql=p.popleft,q.popleft

    pa,qa=p.append,q.append

    s=b=0

    for x,h in sorted(zip(m,m),key=itemgetter(0)):

        while p and p[0]<x:

            pl()

            b-=ql()

        h-=b

        t=0--h//a

        if t>0:

            s+=t

            b+=t*a

            pa(x+d+d)

            qa(t*a)

    print(s)

main()
def main():
    import sys
    from collections import deque
    from operator import itemgetter

    b = sys.stdin.buffer
    n, d, a = list(map(int, b.readline().split()))
    m = list(map(int, b.read().split()))
    p, q = deque(), deque()
    f, g = p.popleft, q.popleft
    s = b = 0
    for x, h in sorted(zip(m, m), key=itemgetter(0)):
        while p and p[0] < x:
            f()
            b -= g()
        h -= b
        t = 0 - -h // a
        if t > 0:
            s += t
            b += t * a
            p += (x + d + d,)
            q += (t * a,)
    print(s)


main()

def main():
    import sys
    from collections import deque
    from operator import itemgetter

    b = sys.stdin.buffer
    n, d, a = list(map(int, b.readline().split()))
    m = list(map(int, b.read().split()))
    p, q = deque(), deque()
    pl, ql = p.popleft, q.popleft
    pa, qa = p.append, q.append
    s = b = 0
    for x, h in sorted(zip(m, m), key=itemgetter(0)):
        while p and p[0] < x:
            pl()
            b -= ql()
        h -= b
        t = 0 - -h // a
        if t > 0:
            s += t
            b += t * a
            pa(x + d + d)
            qa(t * a)
    print(s)


main()

-    f, g = p.popleft, q.popleft +    pl, ql = p.popleft, q.popleft +    pa, qa = p.append, q.append -            f() -            b -= g() +            pl() +            b -= ql() -            p += (x + d + d,) -            q += (t * a,) +            pa(x + d + d) +            qa(t * a)