#include #include #include #include // t = x2 / (x2-x1) // y = (y1 * x2 + y2 * -x1) / (x2 - x1) int main() { int n; std::cin >> n; std::vector x1(n); std::vector y1(n); std::vector x2(n); std::vector y2(n); for(int i=0; i> x1[i] >> y1[i] >> x2[i] >> y2[i]; if(x1[i] > x2[i]) { std::swap(x1[i], x2[i]); std::swap(y1[i], y2[i]); } } double maxy = std::numeric_limits::infinity(); for(int i=0; i 0 || x2[i] < 0) continue; double t = double(x2[i]) / double(x2[i]-x1[i]); double y = double(y1[i]) * t + double(y2[i]) * (1-t); if(y < 0) continue; maxy = std::min(maxy, y); } if(maxy == std::numeric_limits::infinity()) std::cout << "-1.0" << std::endl; else std::cout << std::setprecision(30) << maxy << std::endl; }