func_code_string: #include <bits/stdc++.h>   using namespace std;   int loc[200000 + 10];   int n;   int ans[4];   int fnext(int y) {     int l = 1, r = n + 1, mid = (l + r) / 2;     while (l < r) {       if (loc[mid] <= y)         l = mid + 1;       else         r = mid;       mid = (l + r) / 2;     }     return mid;   }   int ok(int x) {     int i, j;     int z = 1;     for (i = 1; i <= 3; i++) {       z = fnext(loc[z] + x);       ans[i] = z;       if (z >= n + 1) return 1;     }     return 0;   }   int main() {     while (scanf( %d , &n) != EOF) {       int i, j, k;       for (i = 1; i <= n; i++) {         scanf( %d , &loc[i]);       }       sort(loc + 1, loc + n + 1);       int r = (loc[n] - loc[1]);       int l = 0, mid;       while (l < r) {         mid = (r + l) / 2;         if (ok(mid))           r = mid;         else           l = mid + 1;       }       ok(l);       double radius = l * 1.0 / 2.0;       double radar1 = (loc[ans[1] - 1] + loc[1]) * 1.0 / 2.0;       double radar2 = (loc[ans[2] - 1] + loc[ans[1]]) / 2.0;       double radar3 = (loc[ans[3] - 1] + loc[ans[2]]) / 2.0;       printf( %.6f n , radius);       printf( %.6f  , radar1);       printf( %.6f  , radar2);       printf( %.6f n , radar3);     }     return 0;   }   