#include <bits/stdc++.h>
#define LL long long
#define endl '\n'
#define Aurora main
#define pb push_back
#define str string
using namespace std;
LL T,M,D,N;
long long per[600],dp[500][500],n,ma=-1;
int Aurora(){
scanf("%lld",&N);
for(int i=1;i<=N;i++) {
scanf("%lld",&per[i]);
per[i+N]=per[i];
}
for(int Q=0;Q<=N-1;Q++){
for(int i=Q+1;i<=Q+N;i++) dp[i][i]=0;
for(int k=1;k<=N;k++){
for(int i=1+Q;i+k<=N+1+Q;i++){
int j=i+k-1;
for(int sep=i;sep<j;sep++){
dp[i][j]=max(dp[i][j],dp[i][sep]+dp[sep+1][j]+per[i-1]*per[sep]*per[j]);
}
}
}
ma=max(dp[Q+1][Q+N],ma);
memset(dp,0,sizeof(dp));
}
cout<<ma<<'\n';
exit(0);
}