#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#include<bits/stdc++.h>#define int long longusingnamespace std;typedef pair<int,int> pii;typedeflonglong ll;constint INF =0x3f3f3f3f;constdouble eps =1e-5;constint N =1e3+10;constint mod =10007;/*
dp(i,j) 表示合并i,j得到的最大值 头节点为w(i),尾节点为w(j+1)
对于dp(i,j) 可以由 dp(i,k)+dp(k+1,j)+w(i)*w(k+1)*w(j+1) 得到。
满足区间性质,由小区间向大区间转移。
*/int dp[N][N],w[N];signedmain(){
IOS
int n; cin>>n;for(int i=1;i<=n;i++) cin>>w[i],w[i+n]=w[i];for(int len=2;len<=n;len++)for(int l=1;l<=n+n-len+1;l++){int r = l + len -1;for(int k=l;k<r;k++)
dp[l][r]=max(dp[l][r],dp[l][k]+dp[k+1][r]+(w[l]*w[k+1]*w[r+1]));}int ans =0;for(int i=1;i<=n+1;i++) ans =max(ans,dp[i][i+n-1]);
cout<<ans<<endl;return0;}