#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;
using ll = long long;
using ld = long double;

#define all(x)  x.begin(),x.end()
#define v(x) vector<x>
#define nl '\n'
#define fxd(x) fixed << setprecision(x)
template<class t> using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;
template<class t> using ordered_multiset = tree<t, null_type, less_equal<t>, rb_tree_tag, tree_order_statistics_node_update>;


bool can(vector<pair<ll,ll>>& friends,ld mid)
{
    ld l = -1e15 , r = 1e15;
    for (int i = 0; i < friends.size(); i++)
    {
        ld friend_pos = friends[i].first;
        ld friend_speed = friends[i].second;
        if(friend_pos >= l && friend_pos <= r)
        {
            l = max(l , friend_pos - friend_speed*mid);
            r = min(r , friend_pos + friend_speed*mid);
        }
        else if(friend_pos < l)
        {
            if(friend_pos + friend_speed*mid >= l)
            {
                r = min(r , friend_pos + friend_speed*mid);
            }
            else
            {
                return false;
            }
        }
        else if(friend_pos > r)
        {
            if(friend_pos - friend_speed*mid <= r)
            {
                l = max(l , friend_pos - friend_speed*mid);
            }
            else
            {
                return false;
            }
        }
    
    }
    return true;
}

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    int n; cin >> n;
    //          pos|speed
     vector<pair<ll,ll>> friends(n);
    for (int i = 0; i < n; i++)
    {
        cin >> friends[i].first;
    }    
    for (int i = 0; i < n; i++)
    {
        cin >> friends[i].second;
    }    
    sort(all(friends));
    
    ld low = 0 , high = 1e15 , pos = -1;
    for (int i = 0; i < 100; i++)
    {
        ld mid = (high+low)/2;
        if(can(friends,mid))
        {
            pos = mid;
            high = mid;
        }
        else
        {
            low = mid;
        }
    }
    cout << fxd(10) << (ld)pos;
}