#include <bits/stdc++.h>
using namespace std;
int n, x1, yy1, x2, y2, rx, ry, vx, vy;
vector<pair<double, double> > v;
double tt, mm;
int main() {
  scanf("%d", &n);
  scanf("%d %d %d %d", &x1, &yy1, &x2, &y2);
  for (int i = 0; i < n; ++i) {
    scanf("%d %d %d %d", &rx, &ry, &vx, &vy);
    if (vx == 0 && vy == 0) {
      if (rx > x1 && rx < x2 && ry > yy1 && ry < y2) {
        v.push_back({0, 1000000000000000000});
        continue;
      } else {
        printf("-1\n");
        return 0;
      }
    }
    if ((rx <= x1 && vx < 0) || (rx >= x2 && vx > 0) || (ry <= yy1 && vy < 0) ||
        (ry >= y2 && vy > 0) || ((rx == x1 || rx == x2) && vx == 0) ||
        ((ry == yy1 || ry == y2) && vy == 0)) {
      printf("-1\n");
      return 0;
    }
    pair<double, double> xx, yy;
    if (rx <= x1)
      xx = make_pair((double)(x1 - rx) / vx, (double)(x2 - rx) / vx);
    else if (rx >= x2)
      xx = make_pair((double)(rx - x2) / -vx, (double)(rx - x1) / -vx);
    else if (vx > 0)
      xx = make_pair(0, (double)(x2 - rx) / vx);
    else
      xx = make_pair(0, (double)(rx - x1) / -vx);
    if (ry <= yy1)
      yy = make_pair((double)(yy1 - ry) / vy, (double)(y2 - ry) / vy);
    else if (ry >= y2)
      yy = make_pair((double)(ry - y2) / -vy, (double)(ry - yy1) / -vy);
    else if (vy > 0)
      yy = make_pair(0, (double)(y2 - ry) / vy);
    else
      yy = make_pair(0, (double)(ry - yy1) / -vy);
    if (max(xx.first, yy.first) > min(xx.second, yy.second)) {
      printf("-1\n");
      return 0;
    }
    v.push_back(make_pair(max(xx.first, yy.first), min(xx.second, yy.second)));
    mm = max(mm, v.back().first);
  }
  for (int i = 0; i < n; ++i) {
    if (v[i].second - 1e-15 < mm + 1e-15) {
      printf("-1\n");
      return 0;
    }
  }
  printf("%.10lf\n", mm + 1e-15);
  return 0;
}
