#include <bits/stdc++.h>
using namespace std;
int n;
pair<pair<double, double>, pair<double, double> > a[200001];
double X1, Y1, X2, Y2;
int in(double x1, double y1) {
  if (x1 <= X1) {
    return -1;
  }
  if (x1 >= X2) {
    return -2;
  }
  if (y1 <= Y1) {
    return -3;
  }
  if (y1 >= Y2) {
    return -4;
  } else
    return 1;
}
int ch(double t) {
  for (int i = 0; i < n; i++) {
    double x1, y1;
    x1 = (double)a[i].first.first;
    y1 = (double)a[i].first.second;
    x1 += ((double)a[i].second.first * t);
    y1 += ((double)a[i].second.second * t);
    int R = in(x1, y1);
    if (R != 1) {
      if (R == -1) {
        if (a[i].second.first > 0) {
          return 2;
        }
        if (a[i].second.first < 0) {
          return -2;
        }
      }
      if (R == -2) {
        if (a[i].second.first > 0) {
          return -2;
        }
        if (a[i].second.first < 0) {
          return +2;
        }
      }
      if (R == -3) {
        if (a[i].second.second > 0) {
          return 2;
        }
        if (a[i].second.second < 0) {
          return -2;
        }
      }
      if (R == -4) {
        if (a[i].second.second < 0) {
          return +2;
        }
        if (a[i].second.second > 0) {
          return -2;
        }
      }
      return +2;
    }
  }
  return 1;
}
int main() {
  cin >> n;
  cin >> X1 >> Y1 >> X2 >> Y2;
  int sum = 0;
  for (int i = 0; i < n; i++) {
    float x1, y1, x2, y2;
    scanf("%f%f%f%f", &x1, &y1, &x2, &y2);
    if (in(x1, y1) == 1) sum++;
    a[i] = make_pair(make_pair(x1, y1), make_pair(x2, y2));
  }
  if (sum == n) {
    cout << 0;
    return 0;
  }
  double st = 0, En = 1e9;
  int cnt = 0;
  int ok = 0;
  while (cnt < 300) {
    double mid = (st + En) / 2;
    int ans = ch(mid);
    if (ans == 1 || ans == -2) {
      En = mid;
      if (ans == 1) {
        ok = 1;
      }
    } else {
      st = mid;
    }
    cnt++;
  }
  if (ok) {
    printf("%.9f", st);
  } else {
    cout << -1;
  }
}
