#include <bits/stdc++.h>
int l[81], r[81], n, s[161];
double rem[81][81][81], ans[81][81], pl[81], pm[81];
int cnt, per[81], out;
void add(double last[81][81], double now[81][81], int x) {
  double l = pl[x], m = pm[x], r = 1 - l - m;
  for (int i = 0; i < cnt; i++)
    for (int j = 0; j + i < cnt; j++) now[i][j] = 0;
  for (int i = 0; i < cnt; i++)
    for (int j = 0; j + i < cnt; j++) {
      double p = last[i][j];
      now[i + 1][j] += p * l;
      now[i][j + 1] += p * m;
      now[i][j] += p * r;
    }
}
void copy(double last[81][81], double now[81][81]) {
  for (int i = 0; i < cnt; i++)
    for (int j = 0; j + i < cnt; j++) now[i][j] = last[i][j];
}
void insert(double last[81][81], double now[81][81], int l, int r) {
  double temp[81][81];
  copy(last, temp);
  for (int i = l; i <= r; i++) {
    add(temp, now, i);
    copy(now, temp);
  }
}
void dfs(int l, int r, double dp[81][81]) {
  if (l == r) {
    for (int i = 0; i < cnt; i++)
      for (int j = 0; j + i < cnt; j++)
        rem[per[l]][i + out][j] += pm[l] * dp[i][j];
    return;
  }
  double next[81][81] = {0};
  int mid = l + r >> 1;
  insert(dp, next, l, mid);
  dfs(mid + 1, r, next);
  insert(dp, next, mid + 1, r);
  dfs(l, mid, next);
}
void work(int left, int right) {
  cnt = out = 0;
  for (int i = 1; i <= n; i++)
    if (l[i] <= left && r[i] >= right) {
      double len = r[i] - l[i];
      per[++cnt] = i;
      pl[cnt] = (left - l[i]) / len;
      pm[cnt] = ((double)(right - left)) / len;
    } else if (r[i] <= left)
      out++;
  if (!cnt) return;
  double dp[81][81] = {0};
  dp[0][0] = 1;
  dfs(1, cnt, dp);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &l[i], &r[i]);
    s[i << 1] = l[i];
    s[(i << 1) - 1] = r[i];
  }
  std::sort(s + 1, s + 2 * n + 1);
  for (int i = 1; i < 2 * n; i++)
    if (s[i] != s[i + 1]) work(s[i], s[i + 1]);
  for (int i = 1; i <= n; i++)
    for (int j = 0; j < n; j++)
      for (int k = 0; k + j < n; k++)
        for (int q = 0; q <= k; q++) ans[i][j + q] += rem[i][j][k] / (k + 1);
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < n; j++) printf("%.10lf ", ans[i][j]);
    puts("");
  }
}
