#include<bits/stdc++.h>
using namespace std;
const int N=110;
int f[2*N][2*N];
int tou[2*N];
int wei[2*N];
int main(){
int n;scanf("%d",&n);
for(int i=1;i<=n;i++){
int x;scanf("%d",&x);
tou[i]=x;tou[i+n]=x;
if(i>1){
if(i!=n){
wei[i-1]=x;wei[i-1+n]=x;
}
else{
wei[i-1]=x;wei[i-1+n]=x;
wei[i]=tou[1];wei[i+n]=tou[1];
}
}
}
for(int i=1;i<=2*n;i++) f[i][i]=0;
for(int len=2;len<=n;len++){
for(int i=1;i+len-1<=2*n;i++){
int j=i+len-1;
for(int k=i;k<j;k++){
f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]+tou[i]*wei[k]*wei[j]);
}
}
}
int ans=0;
for(int i=1;i<=n;i++){
ans=max(ans,f[i][i+n-1]);
}
printf("%d\n",ans);
return 0;
}