#include <iostream>
#include <fstream>
using namespace std;
#define maxn 505
int N;
const int oo = 2e9;
int64_t d[maxn][maxn]; ///d[i][j] - nr minim de inmultiri pt a inmulti matricile i .. j
int m[maxn];
int main()
{
ifstream in ("podm.in");
ofstream out ("podm.out");
in>>N;
for(int i = 0; i <= N; ++i)
in>>m[i];
for(int i = 1; i < N; ++i)
d[i][i + 1] = m[i - 1] * m[i] * m[i + 1];
for(int l = 2; l < N; ++l)
for(int i = 1; i <= N - l; ++i)
{
int j = i + l;
d[i][j] = oo;
for(int k = i; k < j; ++k)
d[i][j] = min(d[i][j], d[i][k] + d[k+1][j] + m[i-1] * m[k] * m[j]);
}
out<<d[1][N];
return 0;
}