#include <bits/stdc++.h>
using namespace std;
const int N = 5.1e5;
int n;
pair<int, int> a[N];
vector<int> o;
int64_t crs(const pair<int, int> &a, const pair<int, int> &b,
            const pair<int, int> &c) {
  int64_t x1 = b.second - a.second;
  int64_t y1 = b.first - a.first;
  int64_t x2 = c.second - a.second;
  int64_t y2 = c.first - a.first;
  return x1 * y2 - x2 * y1;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) scanf("%d%d", &a[i].first, &a[i].second);
  sort(a, a + n);
  o.push_back(0);
  long double ans = -1;
  for (int i = 1; i < n; ++i) {
    while (o.size() && a[i].second >= a[o.back()].second) o.pop_back();
    int l = 0, r = o.size() - 1, m;
    while (l < r) {
      m = l + r + 1 >> 1;
      if (crs(a[i], a[o[m]], a[o[m - 1]]) >= 0)
        r = m - 1;
      else
        l = m;
    }
    int w = l;
    if (o.size() && a[i].second < 0 && a[o[w]].second > 0) {
      long double now = a[i].first - a[o[w]].first;
      now /= a[o[w]].second - a[i].second;
      ans = ans < 0 ? now : min(ans, now);
    }
    if (a[i].second > 0) {
      o.resize(w + 1);
      o.push_back(i);
    }
  }
  cout << setprecision(10);
  cout << fixed;
  cout << ans << endl;
  return 0;
}
