intmain() { cin >> n; for (int i = 1; i <= n; ++i) cin >> a[i], a[i + n] = a[i];
for (int len = 1; len <= n + 1; ++len) { for (int l = 1, r; r = l + len - 1, r <= n << 1; ++l) { if (len == 1) dp[l][l] = 0; else { for (int k = l + 1; k < r; ++k) { dp[l][r] = max(dp[l][r], dp[l][k] + dp[k][r] + a[l] * a[r] * a[k]); } } } }
int maxv = 0; for (int l = 1; l <= n; ++l) { maxv = max(maxv, dp[l][l + n]); }