#include <bits/stdc++.h>
using namespace std;
int n;
double sv[500050];
struct info {
  int x, v;
} A[500050];
int main() {
  scanf("%d", &n);
  int l = 0;
  for (int i = 0; i < n; i++) scanf("%d %d", &A[i].x, &A[i].v);
  int st = n, nd = -1;
  for (int i = 0; i < n; i++)
    if (A[i].v > 0) {
      st = i;
      break;
    }
  for (int i = n - 1; i >= 0; i--)
    if (A[i].v < 0) {
      nd = i;
      break;
    }
  if (st > nd)
    puts("-1.000000000000");
  else {
    int it = 100;
    double low = 0, high = 1e20, mid;
    while (it--) {
      mid = (low + high) / 2;
      double mx = -1e20, mn = 1e20;
      int i;
      for (i = 0; i < n; i++)
        if (A[i].v > 0) sv[i] = mx = max(mx, A[i].v * mid + A[i].x);
      for (i = n - 1; i >= 0; i--) {
        if (A[i].v < 0)
          mn = min(mn, A[i].v * mid + A[i].x);
        else if (sv[i] > mn)
          break;
      }
      if (i >= 0)
        high = mid;
      else
        low = mid;
    }
    printf("%.12lf\n", mid);
  }
  return 0;
}
