The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates measured in meters from the southernmost building in north direction.

At some points on the road there are *n* friends, and *i*-th of them is standing at the point *x*<sub class="lower-index">*i*</sub> meters and can move with any speed no greater than *v*<sub class="lower-index">*i*</sub> meters per second in any of the two directions along the road: south or north.

You are to compute the minimum time needed to gather all the *n* friends at some point on the road. Note that the point they meet at doesn't need to have integer coordinate.
The first line contains single integer *n* (2 ≤ *n* ≤ 60 000) — the number of friends.

The second line contains *n* integers *x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*n*</sub> (1 ≤ *x*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>) — the current coordinates of the friends, in meters.

The third line contains *n* integers *v*<sub class="lower-index">1</sub>, *v*<sub class="lower-index">2</sub>, ..., *v*<sub class="lower-index">*n*</sub> (1 ≤ *v*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>) — the maximum speeds of the friends, in meters per second.
In the first sample, all friends can gather at the point 5 within 2 seconds. In order to achieve this, the first friend should go south all the time at his maximum speed, while the second and the third friends should go north at their maximum speeds.
3
7 1 3
1 2 1
2.000000000000
4
5 10 3 2
2 3 2 4
1.400000000000
3
1 1000000000 2
1 2 1000000000
333333332.999999999971
2
4 5
10 8
0.055555555556
4
14 12 10 17
8 6 5 10
0.466666666667
5
1 15 61 29 43
15 11 19 19 19
1.764705882353
10
20 11 17 38 15 27 2 40 24 37
22 30 22 30 28 16 7 20 22 13
1.750000000000
2
1000000000 1000000000
1 1
0.000000000000
3
1 1 1
1 1 1
0.000000000000
//author : bhupathi07
//problem Link : https://codeforces.com/contest/782/problem/B


#include<bits/stdc++.h>
#include<iostream>
#include<vector>
#include <iomanip>
#include<algorithm>
using namespace std;

int n ;
vector<int> Location; // initializing vector of location
vector<int> Velocity; // initializing vecotr of velocities corresponding location

// this function will return the value of  rightmost left endpoint 
// how much we can move toward left  within t seconds

double rightmost_Left_ep(double t)
{       
        double result = INT_MIN;
        for(int i = 0 ; i < n ; i++)
        {       
                result = max( result , Location[i]- (Velocity[i]*t));
        }
        return result;
}
// this functil will return the value of leftmost right endpoint
//how much we can move toward right with in t seconds  
double leftmost_Right_ep(double t)
{
        double result = INT_MAX;
        for(int i = 0 ;i < n ;i++)
        {
                result = min(result , Location[i]+(Velocity[i]*t));
        }
        return result;
}
//is_feasible function will return boolean value weather
// the value k is sufficent to meet all peoples or not 
bool is_feasible(double k)
{
        return rightmost_Left_ep(k) <= leftmost_Right_ep(k);
}


int main(int argc,char const *argv[])
{
        // n is the number of people 
        cin >> n;
        // resizing the location and velocity vector with n people 
        Location.resize(n);
        Velocity.resize(n);

        //read the location array 
        for(int i = 0 ; i < n ; i++)
        {
                cin >> Location[i];
        }
        // read the velocity array
        for(int i = 0 ; i < n ; i++)
        {
                cin >> Velocity[i];
        }
        // here lo is lower  and upperboound of answer 
        double lo = 0.0 , hi = 1e9;
        double mid;
        while((hi - lo) > 1e-6)
        {
                mid = (hi+lo)/2; // middle of our searchspace
                if(is_feasible(mid))
                {
                        //if mid is feasible then we have find with less time
                        //so truncate the top half of search space 
                        hi = mid;
                }
                else
                {
                        //if mid is not feasible the we have to find with more time
                        //so truncate the bottom half of the search space 
                        lo = mid;
                }
        }
        // atlast we have hi where all people meet which is optimal
        printf("%.9lf ",hi);
        return 0;
}