func_code_string: #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(  );     }   }   