func_code_string: #include <bits/stdc++.h>   using namespace std;   int dx[] = {0, 1, 0, -1};   int dy[] = {1, 0, -1, 0};   string blank =   ;   const int N = 2e5 + 10;   vector<double> arr(N);   int n;   vector<double> can(double mid) {     vector<double> ans;     vector<double>::iterator i = arr.begin();     ans.push_back(min(arr[n - 1], *i + mid));     i = upper_bound(arr.begin(), arr.begin() + n, *i + (mid * 2));     if (i == arr.begin() + n) i = arr.begin() + n - 1;     ans.push_back(min(arr[n - 1], *i + mid));     i = upper_bound(arr.begin(), arr.begin() + n, *i + (mid * 2));     if (i == arr.begin() + n) i = arr.begin() + n - 1;     ans.push_back(min(arr[n - 1], *i + mid));     if (ans[2] + mid < arr[n - 1]) ans.clear();     return ans;   }   void solve() {     cin >> n;     for (long long i = (0); i < (n); i++) cin >> arr[i];     sort(arr.begin(), arr.begin() + n);     double l = 0, r = arr[n - 1] - arr[0], mid;     int rep = 100;     vector<double> ans;     while (rep--) {       mid = l + ((r - l) / 2.0);       vector<double> res = can(mid);       if (!res.empty())         r = mid, ans = res;       else         l = mid;     }     cout << fixed << setprecision(6) << l <<   n ;     for (long long i = (0); i < (3); i++)       cout << fixed << setprecision(6) << ans[i] <<    ;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     solve();   }   