#include <bits/stdc++.h>
using namespace std;
const int DIM = 6e+2;
;
const double EPS = 1e-9;
pair<double, double> pts[DIM];
double calc(double x1, double x2, double f, double h) {
  double x3 = x1 * (f + h) / (f - h), x4 = x2 * (f + h) / (f - h);
  if (x3 < x2 && x1 < x4) return (x3 + x1) * h;
  if (x2 < x3 && x4 < x1) return (x2 + x4) * h;
  if (x1 + x2 > x3 + x4) swap(x1, x4), swap(x2, x3);
  double a = x4 - x1, b = x3 - x2, p = 0.0;
  if (a + b > EPS) p = a * b / (a + b) / (a + b);
  return (x1 + x2 + p * (a + b)) * h;
}
int main(void) {
  int n, h, f;
  cin >> n >> h >> f;
  double ans = 0;
  for (int i = 1; i <= n; ++i) {
    cin >> pts[i].first >> pts[i].second;
    double aux1 = pts[i].second - pts[i].first, aux2 = aux1 * (f + h) / (f - h);
    ans += (aux1 + aux2) * h * 2.0;
  }
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) {
      ans -= calc(pts[i].first, pts[j].first, f, h);
      ans += calc(pts[i].first, pts[j].second, f, h);
      ans += calc(pts[i].second, pts[j].first, f, h);
      ans -= calc(pts[i].second, pts[j].second, f, h);
    }
  }
  cout << setprecision(10) << fixed << ans;
  return 0;
}
