#include <bits/stdc++.h>
using namespace std;
struct cap {
  double s;
  double f;
};
struct mouse {
  int x, y, vx, vy;
  double t1;
  double t2;
  double t3;
  double t4;
  cap vt;
};
mouse A[100000];
bool giaoChung(double x1, double y1, double x2, double y2, cap &output) {
  cap r;
  if (x1 >= x2 && y1 <= y2) {
    r.s = x1;
    r.f = y1;
  } else if (x2 >= x1 && y2 <= y1) {
    r.s = x2;
    r.f = y2;
  } else if (x1 >= x2 && x1 <= y2 && y2 <= y1) {
    r.s = x1;
    r.f = y2;
  } else if (x2 >= x1 && x2 <= y1 && y2 >= y1) {
    r.s = x2;
    r.f = y1;
  } else if (y2 < x1) {
    return false;
  } else if (y1 < x2) {
    return false;
  }
  output = r;
  return true;
}
int main() {
  ios::sync_with_stdio(false);
  int n;
  int x1, y1, x2, y2;
  cin >> n;
  cin >> x1 >> y1 >> x2 >> y2;
  bool run = true;
  for (int i = 0; i < n; i++) {
    bool infx = false;
    bool infy = false;
    cin >> A[i].x >> A[i].y >> A[i].vx >> A[i].vy;
    if (A[i].vx > 0) {
      A[i].t1 = (x1 - A[i].x) / (double)A[i].vx;
      A[i].t2 = (x2 - A[i].x) / (double)A[i].vx;
    } else if (A[i].vx < 0) {
      A[i].t2 = (x1 - A[i].x) / (double)A[i].vx;
      A[i].t1 = (x2 - A[i].x) / (double)A[i].vx;
    } else
      infx = true;
    if (A[i].vy > 0) {
      A[i].t3 = (y1 - A[i].y) / (double)A[i].vy;
      A[i].t4 = (y2 - A[i].y) / (double)A[i].vy;
    } else if (A[i].vy < 0) {
      A[i].t4 = (double)((y1 - A[i].y)) / (double)A[i].vy;
      A[i].t3 = (double)((y2 - A[i].y)) / (double)A[i].vy;
    } else
      infy = true;
    if (infx && infy) {
      if (A[i].x > x1 && A[i].x < x2 && A[i].y > y1 && A[i].y < y2) {
        A[i].t1 = A[i].t3 = 0;
        A[i].t2 = A[i].t4 = DBL_MAX;
      } else
        run = false;
    } else if (infx) {
      if (A[i].x > x1 && A[i].x < x2) {
        A[i].t1 = A[i].t3;
        A[i].t2 = A[i].t4;
      } else
        run = false;
    } else if (infy) {
      if (A[i].y > y1 && A[i].y < y2) {
        A[i].t3 = A[i].t1;
        A[i].t4 = A[i].t2;
      } else
        run = false;
    }
    if (A[i].t1 < 0) {
      A[i].t1 = 0;
    }
    if (A[i].t2 < 0) {
      run = false;
    }
    if (A[i].t3 < 0) {
      A[i].t3 = 0;
    }
    if (A[i].t4 < 0) {
      run = false;
    }
    if (run == false) {
      cout << "-1";
      return 0;
    }
    cap vt;
    if (giaoChung(A[i].t1, A[i].t2, A[i].t3, A[i].t4, vt) == false) {
      cout << "-1";
      return 0;
    }
    A[i].vt = vt;
  }
  cap kq;
  kq = A[0].vt;
  for (int i = 1; i < n; i++) {
    if (giaoChung(A[i].vt.s, A[i].vt.f, kq.s, kq.f, kq) == false) {
      cout << "-1";
      return 0;
    }
  }
  if (kq.s == kq.f)
    cout << "-1";
  else
    cout << setprecision(20) << kq.s;
  return 0;
}
