#include <bits/stdc++.h>
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
inline int read() {
  char c = getchar();
  int tot = 1;
  while ((c < '0' || c > '9') && c != '-') c = getchar();
  if (c == '-') {
    tot = -1;
    c = getchar();
  }
  int sum = 0;
  while (c >= '0' && c <= '9') {
    sum = sum * 10 + c - '0';
    c = getchar();
  }
  return sum * tot;
}
inline void wr(int x) {
  if (x < 0) {
    putchar('-');
    wr(-x);
    return;
  }
  if (x >= 10) wr(x / 10);
  putchar(x % 10 + '0');
}
inline void wrn(int x) {
  wr(x);
  putchar('\n');
}
inline void wri(int x) {
  wr(x);
  putchar(' ');
}
inline void wrn(int x, int y) {
  wri(x);
  wrn(y);
}
inline void wrn(int a, int b, int c) {
  wri(a);
  wrn(b, c);
}
const int N = 205;
int n, m, now, cnt, l[N], r[N], d[N];
double ans[N], f[N][N], len, ll, rr, p1, p2, p3;
void calc(int L, int R) {
  cnt = 1;
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= n; j++) f[i][j] = 0;
  f[0][0] = 1;
  for (int i = 1; i <= n; i++)
    if (i != now) {
      if (r[i] <= L) {
        cnt++;
        continue;
      }
      if (l[i] >= R) continue;
      len = r[i] - l[i];
      p1 = (L - l[i]) / len;
      p2 = (R - L) / len;
      p3 = (r[i] - R) / len;
      for (int j = i; j >= 0; j--)
        for (int k = i - j; k >= 0; k--) {
          f[j + 1][k] += f[j][k] * p1;
          f[j][k + 1] += f[j][k] * p2;
          f[j][k] *= p3;
        }
    }
  for (int i = 0; i + cnt <= n; i++) {
    for (int j = n - i - cnt; j >= 0; j--)
      ans[i + cnt] += f[i][j] * (R - L) / (j + 1),
          ans[i + j + 1 + cnt] -= f[i][j] * (R - L) / (j + 1);
  }
}
signed main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &l[i], &r[i]);
    d[++m] = l[i];
    d[++m] = r[i];
  }
  sort(d + 1, d + m + 1);
  int k = 1;
  for (int i = 2; i <= m; i++)
    if (d[i] != d[i - 1]) {
      k++;
      if (k != i) d[k] = d[i];
    }
  m = k;
  for (int i = 1; i <= n; i++) {
    now = i;
    for (int j = 1; j <= n; j++) ans[j] = 0;
    for (int j = 1; j < m; j++)
      if (l[i] <= d[j] && r[i] >= d[j + 1]) calc(d[j], d[j + 1]);
    for (int j = 1; j <= n; j++) ans[j] += ans[j - 1];
    for (int j = 1; j <= n; j++) printf("%.6lf ", ans[j] / (r[i] - l[i]));
    puts("");
  }
}
