#include <bits/stdc++.h>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
#define NMAX 513
const long long MX = (1LL << 60);
int v [NMAX], n, aux;
long long dp [NMAX][NMAX];
int main (){
fin >> n;
for(int i = 0; i <= n; i ++)fin >> v [i];
for (int i = 1; i <= n; i ++)
dp [i][i + 1] = 1LL * v [i - 1] * v [i] * v [i + 1];
for (int dim = 2; dim < n; dim ++){
for (int i = 1; i <= n - dim; i ++){
dp [i][i + dim] = MX;
for (int j = i; j < i + dim; j ++){
aux = dp [i][j] + dp [j + 1][i + dim] + 1LL * v [i - 1] * v [j] * v [i + dim];
if (aux < dp [i][i + dim])dp [i][i + dim] = aux;
}
}
}
fout << dp [1][n];
return 0;
}