#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;
}
