#include <bits/stdc++.h>
using namespace std;
template <class T>
T ABS(T a) {
  return a < 0 ? -a : a;
}
int N;
pair<int, int> pts[5 * 100000];
int main() {
  while (scanf("%d", &N) == 1) {
    for (int i = 0; i < N; i++) {
      scanf("%d%d", &pts[i].first, &pts[i].second);
    }
    double ans = 1.0E10;
    int i = 0;
    for (;;) {
      for (; i < N && pts[i].second < 0; i++)
        ;
      if (i == N) {
        break;
      }
      int j = i;
      for (; j < N && pts[j].second > 0; j++)
        ;
      int j2 = j;
      for (; j2 < N && pts[j2].second < 0; j2++)
        ;
      if (j2 == j) {
        break;
      }
      double lo = 0.0, hi = (double)(pts[j2 - 1].first - pts[i].first) /
                            (pts[i].second - pts[j2 - 1].second);
      while (ABS(hi - lo) > 1.0E-10) {
        double med = (lo + hi) * 0.5;
        double xmax = -1.0E10, ymin = 1.0E10;
        for (int k = i; k < j; k++) {
          xmax = max(xmax, pts[k].first + pts[k].second * med);
        }
        for (int k = j; k < j2; k++) {
          ymin = min(ymin, pts[k].first + pts[k].second * med);
        }
        if (ymin < xmax + 1.0E-10) {
          hi = med;
        } else {
          lo = med;
        }
      }
      ans = min(ans, (lo + hi) * 0.5);
      i = j2;
    }
    if (ans == 1.0E10) {
      puts("-1");
    } else {
      printf("%.10lf\n", ans);
    }
  }
  return 0;
}
