#include <bits/stdc++.h>
using namespace std;
const double pp = 0.00000001;
const int maxn = 100005;
double ans, xo, da, mid;
int ci, w, i, n, x[maxn], y[maxn];
bool pd(double k) {
  double ww, l = -1e9, r = 1e9;
  int i;
  for (i = 1; i <= n; i++) {
    if (k * k < (y[i] - k) * (y[i] - k)) {
      return 0;
    }
    ww = -1.0 * y[i] * y[i] + 2 * y[i] * k;
    ww = sqrt(ww);
    if (l < x[i] - ww) l = x[i] - ww;
    if (r > x[i] + ww) r = x[i] + ww;
  }
  if (l <= r)
    return true;
  else
    return false;
}
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%d%d", &x[i], &y[i]);
    if (y[i] > 0)
      w++;
    else
      y[i] = -y[i];
  }
  if (w != 0 && w != n) {
    printf("-1\n");
    return 0;
  }
  xo = 0;
  da = 50000000000000.4949989;
  ci = 0;
  while (ci <= 100) {
    ci++;
    mid = (xo + da) / 2;
    if (pd(mid)) {
      ans = mid;
      da = mid;
    } else
      xo = mid;
  }
  printf("%lf\n", mid);
  return 0;
}
