#include <bits/stdc++.h>
using namespace std;
typedef struct point {
  long long x, y;
} Point;
long long n;
double calculate(double x, Point p[]) {
  double radius = 0;
  for (long long i = 0; i < n; i++) {
    double xi = p[i].x;
    double yi = p[i].y;
    radius = max(radius, abs(((xi - x) * (xi - x) + yi * yi) / (2.0 * yi)));
  }
  return radius;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  Point p[n];
  bool okay1 = false;
  bool okay2 = false;
  for (long long i = 0; i < n; i++) {
    cin >> p[i].x >> p[i].y;
    if (p[i].y > 0)
      okay1 = true;
    else if (p[i].y < 0)
      okay2 = true;
  }
  if (okay1 && okay2) {
    cout << -1;
    return 0;
  }
  double low = -1000000000;
  double high = 1000000000;
  for (long long i = 0; i < 100; i++) {
    double m1 = (low + 2 * high) / 3;
    double m2 = (2 * low + high) / 3;
    if (calculate(m2, p) < calculate(m1, p))
      high = m1;
    else
      low = m2;
  }
  cout << setprecision(10) << fixed << calculate(low, p);
}
