#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
double l[500], r[500];
int sign(double x) {
  if (fabs(x) < eps) return 0;
  return (x > 0) ? 1 : -1;
}
double calc(double a, double b, double h, double f) {
  if (sign(a) == 0 || sign(b) == 0 || sign(a) * sign(b) == -1) return 0;
  if (sign(a) == -1) {
    a *= -1;
    b *= -1;
  }
  double k1 = (h - f) / a, b1 = f;
  double k2 = (f - h) / b, b2 = -f;
  double x = (b2 - b1) / (k1 - k2);
  double y = k1 * x + b1;
  if (sign(y - h) > 0) return (b + b / (f - h) * (f + h)) * h;
  if (sign(y + h) < 0) return (a + a / (f - h) * (f + h)) * h;
  return (a + x) * (h - y) / 2 + (b + x) * (y + h) / 2;
}
int main() {
  int n;
  double h, f;
  scanf("%d%lf%lf", &n, &h, &f);
  for (int i = 0; i < n; i++) scanf("%lf%lf", &l[i], &r[i]);
  double ans = 0;
  for (int i = 0; i < n; i++) {
    double x = r[i] - l[i];
    double y = x / (f - h) * (f + h);
    ans += (x + y) * h * 2;
  }
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
      double tmp = 0;
      tmp += calc(l[i], l[j], h, f);
      tmp += calc(r[i], r[j], h, f);
      tmp -= calc(l[i], r[j], h, f);
      tmp -= calc(r[i], l[j], h, f);
      ans -= tmp;
    }
  printf("%.10lf\n", ans);
  return 0;
}
