import bisect n = int(input()) X = list(map(int, input().split())) A = list(map(int, input().split())) sum_r = [0] * n # Calculate sum_r from right to left for i in range(n-1, -1, -1): target = X[i] + A[i] idx = bisect.bisect_left(X, target) if idx < len(X) and X[idx] == target: sum_r[i] = A[i] + sum_r[idx] else: sum_r[i] = A[i] # Calculate the answer for each i for i in range(n): current_max = sum_r[i] target_left = X[i] - A[i] idx = bisect.bisect_left(X, target_left) if idx < len(X) and X[idx] == target_left: candidate = sum_r[idx] - A[i] if candidate > current_max: current_max = candidate print(current_max)