#include<iostream>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#include<queue>
#include<list>
#include<stack>
#include<cstdio>
#include<fstream>
#include<numeric>
#include<functional>
#include<utility>
#include<memory>
using namespace std;
using namespace placeholders;
const double eps = 3e-15;
int n;
double Left, Right;
bool flag;
void cal(int cur, int m, int n, int v){
if (flag) return;
if (v == 0){
if (cur > m&&cur < n) return;
else{
flag = true;
return;
}
}
if (v < 0){
v = -v;
cur = -cur;
m = -m;
n = -n;
swap(m, n);
}
if (cur >= n){
flag = true;
return;
}
Right = min(Right, (n - cur) / (double)v);
if (cur <= m){
Left = max(Left, (m - cur) / (double)v);
}
}
int main(){
while (cin >> n){
Left = 0;
Right = INT_MAX;
int x0, y0, x1, y1;
cin >> x0 >> y0 >> x1 >> y1;
flag = false;
for (int i = 0; i < n; i++){
int tx, ty;
int vx, vy;
cin >> tx >> ty >> vx >> vy;
if (flag) continue;
cal(tx, x0, x1, vx);
cal(ty, y0, y1, vy);
}
if (flag) cout << "-1" << endl;
else if (Right>=(1+eps)*Left) cout << Left << endl;
else cout <<"-1"<< endl;
}
// system("pause");
return 0;
}
793C Mice problem
最新推荐文章于 2022-12-06 19:30:51 发布