#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
long long pw(long long a, long long b, long long t) {
  long long res = 1;
  while (b) {
    if (b % 2) {
      res = (res * a) % t;
    }
    a = (a * a) % t;
    b /= 2;
  }
  return res;
}
int kmpprocesser(vector<long long>& b, string s) {
  int i = 0, j = -1;
  b[0] = -1;
  while (i < s.length()) {
    while (j >= 0 && s[i] != s[j]) j = b[j];
    j++, i++;
    b[i] = j;
  }
  return j - 1;
}
int kmpsearch(string s, string ss, vector<long long> b) {
  int i = 0, j = 0;
  int cnt = 0;
  int n = s.length(), m = ss.length();
  while (i < n) {
    while (j >= 0 && ss[j] != s[i]) j = b[j];
    j++, i++;
    if (j == m) {
      cnt++, j = 0;
    }
  }
  return cnt;
}
int n, m;
char a[1010][1010];
int d[1010][1010];
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};
map<pair<long long, long long>, int> mm;
int ie, je;
int INF = -1;
double L = 0, R = 1e10;
int main() {
  long double x1, y1, x2, y2;
  int n;
  while (cin >> n) {
    cin >> x1 >> y1 >> x2 >> y2;
    long double tmin = 0, tmax = 1e10;
    bool ok = true;
    for (int i = 0; i < n; i++) {
      int xx, yy, vx, vy;
      cin >> xx >> yy >> vx >> vy;
      if (vx == 0) {
        if (xx <= min(x1, x2) || xx >= max(x2, x1)) {
          ok = false;
        }
      }
      if (vy == 0) {
        if (yy <= min(y1, y2) || yy >= max(y1, y2)) {
          ok = false;
        }
      }
      if (vx >= 0) {
        tmin = max(tmin, 1.0 * (x1 - xx) / vx);
        tmax = min(tmax, 1.0 * (x2 - xx) / vx);
      } else {
        tmin = max(tmin, 1.0 * (x2 - xx) / vx);
        tmax = min(tmax, 1.0 * (x1 - xx) / vx);
      }
      if (vy >= 0) {
        tmin = max(tmin, 1.0 * (y1 - yy) / vy);
        tmax = min(tmax, 1.0 * (y2 - yy) / vy);
      } else {
        tmin = max(tmin, 1.0 * (y2 - yy) / vy);
        tmax = min(tmax, 1.0 * (y1 - yy) / vy);
      }
      if (tmin >= tmax) {
        ok = false;
      }
    }
    if (ok)
      printf("%.10lf\n", (double)tmin);
    else
      cout << -1 << endl;
  }
}
