#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > v[3];
vector<int> l;
double a[500010];
int main() {
  int n, x, y;
  bool chh = false;
  double ans = DBL_MAX;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d %d", &x, &y);
    int tmp = 0;
    if (y > 0) tmp = 1;
    v[tmp].push_back(pair<int, int>(x, y));
    if (tmp == 1) {
      l.push_back(x);
    }
  }
  double lo = 0, hi = 1000000010;
  double tmp = 0;
  for (int r = 0; r < 100; r++) {
    bool ch = false;
    double mid = (lo + hi) / 2;
    for (int i = 0; i < v[1].size(); i++) {
      a[i] = (double)v[1][i].first + (double)(mid * v[1][i].second);
      if (i > 0) a[i] = max(a[i], a[i - 1]);
    }
    for (int i = 0; i < v[0].size(); i++) {
      tmp = v[0][i].first + (double)(mid * v[0][i].second);
      int ind = upper_bound(l.begin(), l.end(), v[0][i].first) - l.begin();
      ind--;
      if (ind >= 0 && a[ind] >= tmp) {
        ch = true;
        break;
      }
    }
    if (ch) {
      hi = mid;
      ans = min(ans, mid);
      chh = true;
    } else
      lo = mid;
  }
  if (chh)
    printf("%.20lf\n", ans);
  else
    printf("-1\n");
  return 0;
}
