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