#include <stdio.h>
#include <string.h>
#define max(a,b) (a>b?a:b)
#define INF 0x3f3f3f3
int main()
{
int data[205],dp[205][205],sum=-1,n;
int i,j,k,len;
scanf("%d",&n);
for(i=1;i<=n;i++)
{scanf("%d",&data[i]);
data[i+n]=data[i];
}
for(len=2;len<=n;len++)
for(i=1;i+len-1<2*n;i++)
{ j=i+len-1;
for(k=i;k<j;k++)
dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]+data[i]*data[k+1]*data[j+1]);
}
for(i=1;i<=n;i++)
if(sum<dp[i][i+n-1])sum=dp[i][i+n-1];
printf("%d\n",sum);
return 0;
}
/**************************************************************
Problem: 2264
User: admin
Language: C
Result: Accepted
Time:58 ms
Memory:1188 kb
****************************************************************/