#include <iostream>
#include <algorithm>
using namespace std;
const int N(209);
int head[N]={0},f[N][N]={0};
int main()
{
int n,ans(0);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>head[i];
head[i+n]=head[i];
}
for(int i=1;i<=2*n;i++)
f[i][i]=0;
for(int s=1;s<n;s++)
for(int h=1;h<=2*n;h++)
for(int mid=h;mid<h+s;mid++)
if(h+s<=2*n)
f[h][h+s]=max(f[h][h+s],f[h][mid]+f[mid+1][h+s]+head[h]*head[mid+1]*head[h+s+1]);
for(int i=1;i<=n;i++)
ans=max(ans,f[i][i+n-1]);
cout<<ans<<endl;
return 0;
}
/**************************************************************
Problem: 2264
User: admin
Language: C++
Result: Accepted
Time:49 ms
Memory:2244 kb
****************************************************************/