#include <bits/stdc++.h>
using namespace std;
int L[1000], R[1000];
int _x[1000];
int nx;
double f[100][100];
double g[100][100];
double ans[100];
int main() {
  int N;
  scanf("%d", &N);
  for (int i = (1), _b = (N); i <= _b; i++) {
    scanf("%d%d", &L[i], &R[i]);
  }
  nx = 0;
  for (int i = (1), _b = (N); i <= _b; i++) _x[++nx] = L[i], _x[++nx] = R[i];
  sort(_x + 1, _x + nx + 1);
  nx = unique(_x + 1, _x + nx + 1) - _x - 1;
  for (int i = (1), _b = (N); i <= _b; i++) {
    for (int j = (1), _b = (N); j <= _b; j++) ans[j] = 0;
    for (int j = (0), _b = (N); j <= _b; j++)
      for (int k = (0), _b = (N - j); k <= _b; k++) g[j][k] = 0;
    for (int j = (1), _b = (nx - 1); j <= _b; j++) {
      if ((_x[j] >= L[i]) && (_x[j + 1] <= R[i])) {
        for (int k = (0), _b = (N); k <= _b; k++)
          for (int p = (0), _b = (N - k); p <= _b; p++) f[k][p] = 0;
        f[0][0] = (double)(_x[j + 1] - _x[j]) / (R[i] - L[i]);
        for (int k = (1), _b = (N); k <= _b; k++)
          if (i != k) {
            double p1 = 0;
            if ((L[k] <= _x[j]) && (R[k] <= _x[j]))
              p1 = 1;
            else if ((L[k] <= _x[j]) && (R[k] >= _x[j + 1]))
              p1 = double(_x[j] - L[k]) / (R[k] - L[k]);
            double p2 = 0;
            if ((L[k] <= _x[j]) && (R[k] >= _x[j + 1]))
              p2 = double(_x[j + 1] - _x[j]) / (R[k] - L[k]);
            for (int p = (k), _b = (0); p >= _b; p--)
              for (int q = (k - p), _b = (0); q >= _b; q--) {
                f[p][q] *= (1.0 - p1 - p2);
                if (p) f[p][q] += f[p - 1][q] * p1;
                if (q) f[p][q] += f[p][q - 1] * p2;
              }
          }
        for (int p = (0), _b = (N); p <= _b; p++)
          for (int q = (0), _b = (N - p); q <= _b; q++) g[p][q] += f[p][q];
      }
    }
    for (int p = (0), _b = (N); p <= _b; p++) {
      double sum = 0.0;
      for (int q = (N - p), _b = (0); q >= _b; q--)
        sum += g[p][q] / (q + 1), ans[p + q + 1] += sum;
    }
    for (int j = (1), _b = (N); j <= _b; j++) {
      if (j > 1) printf(" ");
      printf("%.8lf", (double)ans[j]);
    }
    printf("\n");
  }
  return 0;
}
