#include <bits/stdc++.h>
using namespace std;
long double x[100005], y[100005];
long long n;
int pos;
bool val = true;
inline bool gt(const long double& x, const long double& y) {
  return x > y + 1e-9;
}
inline bool lt(const long double& x, const long double& y) {
  return y > x + 1e-9;
}
bool check(long double r) {
  long double MIN, MAX;
  for (long long i = 1; i <= n; i++) {
    long double temp = (2 * r) - y[i];
    if (lt(temp, 0)) return false;
    temp = sqrt(temp);
    temp *= sqrt(y[i]);
    if (i == 1) {
      MIN = x[i] - temp;
      MAX = x[i] + temp;
    } else {
      long double le = x[i] - temp, ri = x[i] + temp;
      if (gt(le, MAX) or lt(ri, MIN)) return false;
      MIN = max(MIN, le);
      MAX = min(MAX, ri);
    }
  }
  return true;
}
int main() {
  ios_base::sync_with_stdio(false);
  long long precision = numeric_limits<long double>::digits10;
  cin >> n;
  for (long long i = 1; i <= n; i++) {
    cin >> x[i] >> y[i];
    if (i == 1) {
      if (y[i] > 0)
        pos = 1;
      else
        pos = -1;
    } else {
      long long tem = pos * y[i];
      if (tem < 0) val = false;
    }
    y[i] = abs(y[i]);
  }
  if (!val)
    cout << -1 << endl;
  else {
    long double lo = 0.5, hi = 1e14;
    for (long long i = 1; i <= 100; i++) {
      long double mid = (lo + hi) / 2.0;
      if (check(mid))
        hi = mid;
      else
        lo = mid;
    }
    cout << setprecision(precision);
    cout << lo << endl;
  }
}
