import std.stdio;
import std.conv;
import std.string;
import std.typecons;
import std.algorithm;
import std.array;
import std.range;
import std.math;
import std.regex : regex;
import std.container;
import std.bigint;


void main()
{
  int n, d, a;
  readf("%s %s %s\n", &n, &d, &a);
  auto x = new int[][](n, 2);
  long res;

  foreach (i; 0..n) {
    x[i] = readln.chomp.split.to!(int[]);
  }
  sort(x);

  foreach (i; 0..n) {
    if (x[i][1] <= 0) continue;
    auto num = x[i][1] / a;
    res += num;
    auto di = num * a;
    if (x[i][1] > di) {
      di += a;
      res++;
    }
    x[i][1] -= d;
    foreach (j; i..n) {
      if (x[i][0] + 2 * d >= x[j][0]) {
        x[j][1] -= di;
      } else {
        break;
      }
    }
  }
  res.writeln;
}
