#include <fstream>
#define NMAX 505
#define INF (1LL<<62)
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;
ifstream fin ( "podm.in" );
ofstream fout ( "podm.out" );
long long d[NMAX],DP[NMAX][NMAX];
int N ;
int main ()
{
int i,diff,k,j ;
fin>>N ;
for(i=0;i<=N;++i )
fin >> d[i] ;
for(i=1;i<N;++i)
DP[i][i+1] = d[i-1]*d[i]*d[i+1];
for(diff=2;diff<=N-1;++diff)
for (i=1;i<=N-diff;++i )
{
j=i + diff ;
DP[i][j]=INF ;
for (k=i;k<j;++k )
DP[i][j]=min(DP[i][j],DP[i][k]+DP[k+1][j]+d[i-1]*d[k]*d[j]);
}
fout<<DP[1][N]<< "\n";
return 0 ;
}