#pragma region header #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; struct Init{Init(){std::cin.tie(0); ios::sync_with_stdio(false); cout << setprecision(20) << fixed;}} init; using ll = long long; using ull = unsigned long long; using ld = long double; #define all(x) begin((x)), end((x)) #define pb push_back #define mp make_pair #define mt make_tuple #define uq(v) v.erase(unique(begin(v), end(v)), end(v)) template using pq = priority_queue; template using pq_g = priority_queue, greater>; template bool chmax(T &a, const T &b){if(a < b){a = b; return 1; } return 0;} template bool chmin(T &a, const T &b){if(a > b){a = b; return 1; } return 0;} constexpr ll INF = 2e18; constexpr int inf = 1e9; constexpr ld eps = 1e-15; constexpr int dx[8] = {1, 0, -1, 0, 1, 1, -1, -1}; constexpr int dy[8] = {0, 1 ,0, -1, 1, -1, 1, -1}; #pragma endregion header int main(){ int N; cin >> N; vector> x(N), y(N); for(int i = 0; i < N; ++i){ ll a, b; cin >> a >> b; x[i] = mp(a, b); } for(int i = 0; i < N; ++i){ ll a, b; cin >> a >> b; y[i] = mp(a, b); } sort(all(x)); sort(all(y)); int a = x[0].first - x[1].first; int b = x[0].second - x[1].second; int c = y[0].first - y[1].first; int d = y[0].second - y[1].second; if(a != 0 && c != 0){ cout << (ld)c / a << "\n"; }else{ cout << (ld)d / b << "\n"; } }