#include <iostream>
#include <algorithm>
using namespace std;
const int N(209);
int head[N]={0},f[N][N]={0};
int main()
{
	int n,ans(0);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>head[i];
		head[i+n]=head[i];
	}
	for(int i=1;i<=2*n;i++)
		f[i][i]=0;
	for(int s=1;s<n;s++)
		for(int h=1;h<=2*n;h++)
			for(int mid=h;mid<h+s;mid++)
				if(h+s<=2*n)
					f[h][h+s]=max(f[h][h+s],f[h][mid]+f[mid+1][h+s]+head[h]*head[mid+1]*head[h+s+1]);
	for(int i=1;i<=n;i++)
		ans=max(ans,f[i][i+n-1]);
	cout<<ans<<endl;
	return 0;
}
/**************************************************************
	Problem: 2264
	User: admin
	Language: C++
	Result: Accepted
	Time:49 ms
	Memory:2244 kb
****************************************************************/