#include<bits/stdc++.h>#include<unordered_map>#include<unordered_set>#define MAX 1111constint MOD =100000;constint INF =0x3f3f3f3f;constdouble Pi =3.1415926;constdouble gap =0.0000001;
using namespace std;typedeflonglongint ll;typedefunsignedlonglongint ull;typedef pair<int,int> Pair;int dp[MAX][MAX];int n;intmain(void){int len =0;int l,r,k;int i =0;int pos =0;int temp =0;
vector<vector<int>> a ={{0,0}};
cin >> n;for(i=1; i<=n;++i){
cin >> temp;
a.push_back({temp,0});
a[i-1][1]= a[i][0];}
a[n][1]= a[1][0];for(i=1; i<=n;++i)
a.push_back(a[i]);int ans =-INF;for(len=2; len <=n;++len)for(l=1; l+len-1<=2*n;++l){
r = l+len-1;for(k=l; k<r;++k)
dp[l][r]=max(dp[l][r], dp[l][k]+dp[k+1][r]+ a[l][0]*a[k][1]*a[r][1]);
ans =max(dp[l][r], ans);}
cout << ans <<endl;return0;}