#include <bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
const long long llINF = 9223372036854775807;
const int INF = 2147483647;
const int maxn = 1e5 + 7;
const int maxm = 1e5 + 7;
const int mod = 1e9 + 7;
int n;
double x[maxn], y[maxn];
bool check(long double k) {
  long double l = -100000000000000000.0, r = 100000000000000000.0, t;
  for (int i = 1; i <= n; i++) {
    if (y[i] > k * 2) return 0;
    t = sqrt(k * k - (k - y[i]) * (k - (y[i])));
    if (l < x[i] - t) l = x[i] - t;
    if (r > x[i] + t) r = x[i] + t;
  }
  return l < r;
}
int main(int argc, char const *argv[]) {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%lf%lf", &x[i], &y[i]);
  int cnt0 = 0, cnt1 = 0;
  for (int i = 1; i <= n; i++) {
    if (y[i] > 0) cnt1++;
    if (y[i] < 0) cnt0++;
  }
  if (cnt0 && cnt1) {
    printf("-1\n");
    return 0;
  }
  for (int i = 1; i <= n; i++) y[i] = abs(y[i]);
  long double l = 0, r = 1e17, mid;
  for (int i = 1; i <= 100; i++) {
    mid = (l + r) / 2.0;
    if (check(mid)) {
      r = mid;
    } else {
      l = mid;
    }
  }
  printf("%.10Lf\n", mid);
  return 0;
}
