#include <iostream>
#include <vector>
#include <limits>
using namespace std;
const int MAXN = 2005;
int main() {
int n;
cin >> n;
vector<int> w(n + 1);
for (int i = 0; i <= n; ++i) {
cin >> w[i];
}
vector<int> dp(n + 1, 0);
for (int len = 2; len <= n; ++len) {
for (int i = 1; i <= n - len + 1; ++i) {
int j = i + len - 1;
dp[j] = numeric_limits<int>::max();
for (int k = i; k < j; ++k) {
int cost = dp[k] + dp[k + 1] + w[i - 1] * w[k] * w[j];
if (cost < dp[j]) {
dp[j] = cost;
}
}
}
}
cout << dp[n] << endl;
return 0;
}