N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) INF = 1<<60 def func(x): C = [a/x for a in A] D = B[:] cum = [0] for i in range(N): cum.append(cum[-1]+C[i]-D[i]) L = [cum[0]] for n in cum[1:]: L.append(min(L[-1], n)) R = [cum[-1]] for n in cum[::-1][1:]: R.append(max(R[-1], n)) R = R[::-1] for i in range(N): if R[i+1]-L[i] <= 0: return True return False left = 0 right = 10**16 for _ in range(100): mid = (left+right)/2 if not func(mid): left = mid else: right = mid print(right)