#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;
}
