#include<iostream>
#include<cstring>
using namespace std;
const int N=110;
int dp[N][N];
int w[N];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>w[i];
memset(dp,0,sizeof dp);
for(int i=1;i<n-1;i++)
dp[i][i+2]=w[i]*w[i+1]*w[i+2];
for(int len=3;len<n;len++)
for(int i=1;i<=n&&i+len<=n;i++)
{
int j=len+i;
for(int k=i+1;k<j;k++)
{
if(dp[i][j]==0)
dp[i][j]=dp[i][k]+dp[k][j]+w[i]*w[k]*w[j];
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+w[i]*w[k]*w[j]);
}
}
cout<<dp[1][n]<<endl;
}