#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int s = 0, f = 0;
  char ch;
  while (!isdigit(ch)) {
    f |= (ch == '-');
    ch = getchar();
  }
  while (isdigit(ch)) {
    s = s * 10 + ch - '0';
    ch = getchar();
  }
  return f ? -s : s;
}
const int N = 85;
int n, has[N * 2], l[N], r[N];
double f[N][N], re[N][N], s[N], le[N];
int main() {
  register int i, j, k, x1, x2, t;
  double L, R, wan, p1, p2, p3, tmp;
  n = read();
  for (i = 1; i <= n; i++) {
    l[i] = read();
    r[i] = read();
    has[++*has] = l[i];
    has[++*has] = r[i];
    le[i] = r[i] - l[i];
  }
  sort(has + 1, has + *has + 1);
  *has = unique(has + 1, has + *has + 1) - has - 1;
  for (i = 1; i <= n; i++) {
    l[i] = lower_bound(has + 1, has + *has + 1, l[i]) - has;
    r[i] = lower_bound(has + 1, has + *has + 1, r[i]) - has;
  }
  for (i = 1; i <= n; i++) {
    for (j = l[i]; j < r[i]; j++) {
      memset(f, 0, sizeof f);
      f[0][0] = 1.0;
      for (k = 1; k <= n; k++)
        if (k != i) {
          p1 = (l[k] <= j && r[k] > j) ? (has[j + 1] - has[j]) / le[k] : 0,
          p2 = (l[k] < j) ? (min(has[j] - has[l[k]], (int)le[k]) / le[k]) : 0,
          p3 = (r[k] > j) ? (min(has[r[k]] - has[j + 1], (int)le[k]) / le[k])
                          : 0;
          if (l[k] > j) continue;
          for (x1 = k; x1 >= 0; x1--) {
            for (x2 = k - x1; x2 >= 0; x2--)
              if (f[x1][x2] > 0) {
                f[x1 + 1][x2] += f[x1][x2] * p1;
                f[x1][x2 + 1] += f[x1][x2] * p2;
                f[x1][x2] = f[x1][x2] * p3;
              }
          }
        }
      for (k = 0; k <= n; k++) s[k] = 0;
      for (x1 = 0; x1 < n; x1++) {
        for (x2 = 0; x2 < n - x1; x2++)
          if (f[x1][x2] > 0) {
            s[x2 + 1] += f[x1][x2] / (x1 + 1);
            s[x1 + x2 + 2] -= f[x1][x2] / (x1 + 1);
          }
      }
      for (k = 1; k <= n; k++) {
        s[k] += s[k - 1];
        re[i][k] += s[k] * (has[j + 1] - has[j]) / le[i];
      }
    }
  }
  for (i = 1; i <= n; i++, puts(""))
    for (j = 1; j <= n; j++) printf("%.6lf ", re[i][j]);
}
