#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= mod;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
const int N = 90;
vector<int> s;
int n, l[N], r[N];
double pl[N], pr[N], pm[N], dp[N][N], ret[N][N], rp[N];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d%d", l + i, r + i);
    s.push_back(l[i]);
    s.push_back(r[i]);
  }
  sort((s).begin(), (s).end());
  s.erase(unique((s).begin(), (s).end()), s.end());
  for (int x = 0; x < n; x++) {
    memset(ret, 0, sizeof(ret));
    memset(rp, 0, sizeof(rp));
    for (int p = 1; p < ((int)(s).size()); p++)
      if (l[x] <= s[p - 1] && r[x] >= s[p]) {
        int cntl = 0, cntr = 0, tot = 0;
        for (int k = 0; k < n; k++)
          if (k != x) {
            if (l[k] <= s[p - 1] && r[k] >= s[p]) {
              pl[tot] = 1. * (s[p - 1] - l[k]) / (r[k] - l[k]);
              pm[tot] = 1. * (s[p] - s[p - 1]) / (r[k] - l[k]);
              pr[tot] = 1. * (r[k] - s[p]) / (r[k] - l[k]);
              ++tot;
            } else if (r[k] <= s[p - 1])
              ++cntl;
            else
              ++cntr;
          }
        memset(dp, 0, sizeof(dp));
        dp[0][0] = 1. * (s[p] - s[p - 1]) / (r[x] - l[x]);
        for (int k = 0; k < tot; k++) {
          for (int i = k + 2 - 1; i >= 0; i--)
            for (int j = k + 2 - i - 1; j >= 0; j--) {
              dp[i][j] *= pm[k];
              if (i) dp[i][j] += dp[i - 1][j] * pl[k];
              if (j) dp[i][j] += dp[i][j - 1] * pr[k];
            }
        }
        for (int i = 0; i < n + 1 - cntl; i++)
          for (int j = 0; j < n + 1 - cntr; j++)
            ret[i + cntl][j + cntr] += dp[i][j];
      }
    for (int i = 0; i < n; i++)
      for (int j = 0; j < n - i; j++)
        for (int k = i + 1; k < n + 1 - j; k++)
          rp[k] += ret[i][j] / (n - i - j);
    for (int k = 1; k < n + 1; k++) printf("%.10f ", rp[k]);
    puts("");
  }
}
