#include <bits/stdc++.h>
using namespace std;

int main() {
  long N, D, A;
  cin >> N >> D >> A;
  vector<pair<long, long>> V(N);
  for (long i = 0, x, h; cin >> x >> h; i++) V.at(i) = {x, h};
  sort(V.begin(), V.end());
  queue<pair<long, long>> Q;
  long ans = 0;
  for (long i = 0, cor = 0; i < N; i++) {
    auto [pos, hp] = V.at(i);
    while (Q.size()) {
      auto [range, dmg] = Q.front();
      if (pos > range) {
        cor -= dmg;
        Q.pop();
      } else {
        break;
      }
    }
    hp -= cor;
    if (hp <= 0) continue;
    long cnt = (hp + A - 1) / A;
    ans += cnt;
    Q.push({pos + D + D, A * cnt});
    cor += A * cnt;
  }
  cout << ans << "\n";
}