#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
****************************************************************/