N=int(input()) A=list(map(int,input().split())) B=list(map(int,input().split())) def f(P): d = [0] + [A[i] - P*B[i] for i in range(N)] for i in range(1,N+1): d[i] += d[i-1] d_min = d[::] for i in range(1,N+1): d_min[i] = min(d_min[i], d_min[i-1]) d_max = d[::] for i in range(N-1,-1,-1): d_max[i] = max(d_max[i], d_max[i+1]) for i in range(N): if d[i] + d_max[i+1] - d_min[i] < 0: return False return True left,right=1,10**9+1 while right - left > 10**(-7): mid = (left + right)/2 if f(mid): left = mid else: right = mid print(left)