func_code_string: #include <bits/stdc++.h>   using namespace std;   int test, n, mx, i;   double l, r, m, eps = 0.000001, a[100005];   double pref(double tm) {     double pos = 0, speed = 1;     for (int i = 0; i < n; i++) {       if ((a[i] - pos) <= tm * speed)         tm -= (a[i] - pos) / speed, pos = a[i], speed += 1;       else {         pos += speed * tm;         tm = 0;         break;       }     }     pos += speed * tm;     return pos;   }   double suff(double tm) {     double pos = mx, speed = 1;     for (int i = n - 1; i >= 0; i--) {       if ((pos - a[i]) <= tm * speed)         tm -= (pos - a[i]) / speed, pos = a[i], speed += 1;       else {         pos -= speed * tm;         tm = 0;         break;       }     }     pos -= speed * tm;     return pos;   }   int main() {     scanf( %d , &test);     while (test--) {       cin >> n >> mx;       for (i = 0; i < n; i++) cin >> a[i];       l = 0., r = 2000000000.;       while (r - l > eps) {         m = (l + r) / 2.;         if (pref(m) <= suff(m))           l = m;         else           r = m - eps;       }       cout << fixed << setprecision(9) << l <<   n ;     }   }   