N = int(input()) A = [-1] + list(map(int, input().split())) M = 18 inf = 1 << 60 dp = [[-inf] * (2 * M + 5) for i in range(2 * N + 5)] for i in range(N, 0, -1): for j in range(-M, M): dp[i][j] = A[i] * j l = 2 * i r = 2 * i + 1 for j in range(-M, M): res = 0 res = max(res, dp[l][j + 1]) res = max(res, dp[r][j + 1]) res = max(res, dp[l][j - 1] + dp[r][j + 1]) res = max(res, dp[l][j + 1] + dp[r][j - 1]) dp[i][j] += res print(dp[1][0])