#include <bits/stdc++.h>
using namespace std;
vector<int> L(6);
vector<int> R(6);
int n;
double probaMenor(int i, int x) {
  if (L[i] > x) {
    return 0;
  }
  if (R[i] <= x) {
    return 1;
  }
  return 1.0 * (x - L[i] + 1) / (R[i] - L[i] + 1);
}
double p(int i, int x, int mayores, int iguales) {
  if (i == n) {
    if (mayores == 1 && iguales >= 1) {
      return 1;
    }
    if (mayores > 1) {
      return 0;
    }
    if (mayores == 0) {
      if (iguales < 2) {
        return 0;
      } else {
        return 1;
      }
    }
    return 0;
  }
  double proba = 0;
  proba += probaMenor(i, x - 1) * p(i + 1, x, mayores, iguales);
  proba += (probaMenor(i, x) - probaMenor(i, x - 1)) *
           p(i + 1, x, mayores, iguales + 1);
  proba += (1.0 - probaMenor(i, x)) * p(i + 1, x, mayores + 1, iguales);
  return proba;
}
int main() {
  cin >> n;
  for (int i = (0); i < (n); i++) {
    cin >> L[i] >> R[i];
  }
  double res = 0;
  for (int x = (1); x < (10001); x++) {
    res += 1.0 * x * p(0, x, 0, 0);
  }
  cout << fixed << setprecision(15) << res << "\n";
}
