#include <bits/stdc++.h>   using namespace std;   const int N = 100100;   pair<long double, long double> a[N];   int n;   bool f(long double mid) {     long double l[n], r[n];     multiset<pair<long double, int>> xex;     for (int i = 0; i < n; i++) {       l[i] = 1.0 * a[i].first - a[i].second * mid;       xex.insert({l[i], -1});       r[i] = 1.0 * a[i].first + a[i].second * mid;       xex.insert({r[i], 1});     }     int cnt = 0;     for (auto it = xex.begin(); it != xex.end(); it++) {       if ((*it).second == -1) {         cnt++;       } else {         cnt--;       }       if (cnt == n) return true;     }     {       bool f = true;       for (int i = 0; i < n; i++) {         if (l[i] <= a[0].first) {           f = false;           break;         }       }       if (f) return true;     }     {       bool f = true;       for (int i = 0; i < n; i++) {         if (a[n - 1].first <= r[i]) {           f = false;           break;         }       }       if (f) return true;     }     return false;   }   int main() {     ios_base::sync_with_stdio(0);     cin >> n;     for (int i = 0; i < n; i++) {       cin >> a[i].first;     }     for (int i = 0; i < n; i++) {       cin >> a[i].second;     }     sort(a, a + n);     long double ans = 1e9;     long double l = 0.0, r = 1e9;     while (r - l >= 0.0000001) {       long double mid = (1.0 * l + r) / 2.0;       if (f(mid)) {         ans = mid;         r = mid;       } else {         l = mid;       }     }     cout << fixed << setprecision(8) << ans << endl;     return 0;   }   