func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 5, R = 1e4;   int n, l[N], r[N];   long long cnt[R + 1];   double all;   bool used[N];   long long f(int cur, int c, int mn, int x = N) {     if (cur == n) {       if (mn > 0) {         return 0;       }       long long cnt = 1;       for (int i = 0; i < n; i++) {         if (!used[i] && i != x) {           cnt *= max(0, min(c, r[i] + 1) - l[i]);         }       }       return cnt;     }     long long cnt = f(cur + 1, c, mn, x);     if (cur != x && l[cur] <= c && c <= r[cur]) {       used[cur] = true;       cnt += f(cur + 1, c, mn - 1, x);       used[cur] = false;     }     return cnt;   }   int main() {     scanf( %d , &n);     for (int i = 0; i < n; i++) {       scanf( %d%d , l + i, r + i);     }     for (int cur = 0; cur <= R; cur++) {       long long sum = 0;       for (int i = 0; i < n; i++) {         sum += f(0, cur, 1, i) * max(0, r[i] - max(cur, l[i] - 1));       }       sum += f(0, cur, 2);       all += sum;       cnt[cur] = sum;     }     double ans = 0;     for (int i = 0; i <= R; i++) {       ans += cnt[i] / all * i;     }     printf( %.10f , ans);   }   