#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long
const int MAX = 1e18;
int k;
vector<int> v, n, m;
int dp[505][505];
signed main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin >> k;
for (int i = 1; i <= k + 1; ++i)
{
int x;
cin >> x;
v.push_back(x);
}
n.push_back(0);
m.push_back(0);
for (int i = 0; i < k; ++i)
{
n.push_back(v[i]);
m.push_back(v[i + 1]);
}
for (int j = 1; j <= k; ++j)
{
for (int i = j - 1; i >= 1; --i)
{
dp[i][j] = MAX;
for (int t = i; t <= j; ++t)
{
dp[i][j] = min(dp[i][j], dp[i][t] + dp[t + 1][j] + n[i] * m[t] * m[j]);
}
}
}
cout << dp[1][k];
return 0;
}