func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 1e5 + 500;   const int INF = 1e7 + 500;   const int MOD = 1e9 + 7;   const int LOG = 18;   const double EPS = 1e-9;   const double PI = 3.1415926535;   vector<pair<int, int> > P;   long double L = INF, R = -INF, M1, M2;   long double dist(long double x0, long double y0, long double x1,                    long double y1) {     return sqrt((x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0));   }   long double f(long double sx) {     long double s, h, r = 0;     for (auto p : P) {       s = dist(sx, 0, p.first, p.second);       h = dist(sx, 0, sx, p.second);       r = max(r, (s * s) / (2 * h));     }     return r;   }   int main() {     int N, xi, yi;     bool pl = false, mi = false;     cin >> N;     for (int i = 0; i < N; i++) {       cin >> xi >> yi;       P.push_back({xi, yi});       if (yi > 0) pl = true;       if (yi < 0) mi = true;       if (L > xi) L = xi;       if (R < xi) R = xi;     }     if (pl & mi) {       cout <<  -1  << endl;       return 0;     }     long double rad1, rad2, ans = 1e18;     for (int i = 0; i < 500; i++) {       M1 = (2 * L + R) / 3;       M2 = (L + 2 * R) / 3;       rad1 = f(M1);       rad2 = f(M2);       if (rad1 < rad2) {         R = M2;         ans = min(ans, rad1);       } else {         L = M1;         ans = min(ans, rad2);       }     }     cout << setprecision(20) << ans << endl;     return 0;   }   