'''
区间DP问题
'''N = int(input())arr = list(map(int, input().split()))
# 把圈拆成链条
arr = arr * 2from functools import lru_cache# dp(i, j)表示区间i, j中所有计算顺序的选择中,最佳选择对应的最大收益
@lru_cache(typed=False, maxsize=128000000)
def dp(i, j):if j - i < 2:return 0if j - i == 2:return arr[i] * arr[i + 1] * arr[i + 2]ans = 0for k in range(i + 1, j):tmp = dp(i, k) + dp(k, j) + arr[i] * arr[k] * arr[j]ans = max(ans, tmp)return ansans = 0
for i in range(N):ans = max(ans, dp(i, i + N))
print(ans)