#include<bits/stdc++.h> using namespace std; const int N=120; int dp[N<<1][N<<1],a[N<<1]; int main(){ int n;scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]),a[n+i]=a[i]; for(int len=1;len<=n;len++){ for(int i=1;i+len<=2*n;i++){ int j=i+len; for(int k=i+1;k<j;k++){ dp[i][j]=max(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]); } } } int ans=-0x7f7f7f7f; for(int i=1;i<=n;i++) ans=max(ans,dp[i][i+n]); printf("%d",ans); return 0; } /************************************************************** Problem: 2059 User: liangshinan Language: C++ Result: Accepted Time:205 ms Memory:2304 kb ****************************************************************/