#include <bits/stdc++.h>
using namespace std;
const double invt = 1e6;
const double minvt = -1e6;
const double eps = 1e-10;
const int max_n = 100000 + 5;
pair<double, double> calc(int rx, int vx, int xx1, int xx2) {
  if (vx == 0) {
    if (xx1 < rx and rx < xx2)
      return pair<double, double>(minvt, invt);
    else
      return pair<double, double>(invt, minvt);
  } else {
    double t1 = ((double)(xx1 - rx)) / ((double)(vx)),
           t2 = ((double)(xx2 - rx)) / ((double)(vx));
    return pair<double, double>(min(t1, t2), max(t1, t2));
  }
}
int n;
int xx1, xx2, yy1, yy2;
int rx[max_n], ry[max_n];
int vx[max_n], vy[max_n];
double maxt1, mint2;
int main() {
  scanf("%d", &n);
  scanf("%d", &xx1);
  scanf("%d", &yy1);
  scanf("%d", &xx2);
  scanf("%d", &yy2);
  maxt1 = minvt;
  mint2 = invt;
  for (int i = 0; i < n; ++i) {
    scanf("%d", &rx[i]);
    scanf("%d", &ry[i]);
    scanf("%d", &vx[i]);
    scanf("%d", &vy[i]);
    pair<double, double> rtx = calc(rx[i], vx[i], xx1, xx2);
    pair<double, double> rty = calc(ry[i], vy[i], yy1, yy2);
    maxt1 = max(maxt1, max(rtx.first, rty.first));
    mint2 = min(mint2, min(rtx.second, rty.second));
  }
  if (maxt1 + eps < mint2) {
    if (0 + eps < mint2)
      printf("%.12f\n", max(0.0, maxt1));
    else
      printf("%d\n", -1);
  } else
    printf("%d\n", -1);
  return 0;
}
