#include <fstream>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
#define NMAX 508
#define LGMAX 208
#define INF (1<<61)
#define int long long int
int n,i,j,x,cx,aux,lgaux,ov[LGMAX],lgov,nr,k,lg;
pair<int,int>a[NMAX];
int dp[NMAX][NMAX];
int compar(int a[], int lga, int b[], int lgb);
void adun(int a[], int lga, int b[], int lgb, int rez[], int &lgrez);
signed main()
{
fin>>n;
for (i=0; i<=n; i++)
{
fin>>x;
if (i)
{
a[i].second=x;
a[i].first=cx;
}
cx=x;
}
for (lg=2; lg<=n; lg++)
{
for (i=1; i+lg-1<=n; i++)
{
dp[i][i+lg-1]=9223372036854775707;
for (j=i+1; j<=i+lg-1; j++)
{
aux=dp[i][j-1]+dp[j][i+lg-1];
nr=a[i].first*a[j].first*a[i+lg-1].second;
aux+=nr;
if (aux<dp[i][i+lg-1])
{
dp[i][i+lg-1]=aux;
}
}
}
}
fout<<dp[1][n];
return 0;
}