#include <bits/stdc++.h>
using namespace std;
double n, h, f, x[511], y[511], ans;
double calc(double x, double y) {
  if (x == 0 || y == 0) return 0;
  if (x > y) swap(x, y);
  if (x < 0 && y > 0) return x * ((f + h) / (f - h) + 1) * h;
  if (x < 0 && y < 0) swap(x, y), x = -x, y = -y;
  if (x * (f + h) / (f - h) < y) return x * ((f + h) / (f - h) + 1) * h;
  double a = f * (y - x) / (y + x);
  double z = x * (f + a) / (f - h);
  return ((y + z) * (h - a) + (x + z) * (h + a)) / 2.0;
}
int main() {
  scanf("%lf%lf%lf", &n, &h, &f);
  for (int i = 1; i <= n; ++i) {
    scanf("%lf%lf", &x[i], &y[i]);
    if (x[i] < 0 && y[i] > 0) x[i + 1] = 0, y[i + 1] = y[i], y[i] = 0, ++i, ++n;
  }
  for (int i = 1; i <= n; ++i)
    ans += (y[i] - x[i]) * ((f + h) / (f - h) + 1.0) * h * 2.0;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= n; ++j)
      if ((x[i] < 0 && x[j] < 0) || (y[i] > 0 && y[j] > 0))
        ans -= calc(x[i], x[j]) + calc(y[i], y[j]) - calc(x[i], y[j]) -
               calc(x[j], y[i]);
  printf("%.10lf\n", ans);
  return 0;
}
