You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 lines
615 B
C++

#include <cstdio>
#include <cstring>
inline int max(int a, int b) { return a > b ? a : b; }
int n, a[10000], f[10000][10000], ans;
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", a + i);
memcpy(a + n, a, sizeof(int) * n);
for (int l = 1; l <= n; l++)
for (int i = 0; i + l < (n << 1); i++)
for (int k = 0; k < l; k++)
f[i][i + l] = max(f[i][i + l], f[i][i + k] + f[i + k + 1][i + l] + a[i] * a[i + k + 1] * a[i + l + 1]);
for (int i = 0; i < n; i++) ans = max(ans, f[i][i + n - 1]);
printf("%d", ans);
return 0;
}