#include <bits/stdc++.h>
using namespace std;
const int N=205;
int n,head[N],tail[N],f[N][N],mx;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>head[i];
tail[i-1]=head[i];
}
tail[n]=head[1];
for(int i=1;i<=n;i++)
{
head[i+n]=head[i],
tail[i+n]=tail[i];
}
for(int len=2;len<=n;len++){
for(int l=1;l<=2*n;l++){
int r=l+len-1;
if(r>=2*n)
break;
for(int k=l;k<=r;k++){
f[l][r]=max(f[l][r],f[l][k]+f[k+1][r]+head[l]*tail[k]*tail[r]);
}
}
}
for(int i=1;i<=n;i++){
mx=max(f[i][i+n-1],mx);
}
cout<<mx;
return 0;
}