#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll matrixMul(int start, int end, vector<int> &arr) {
if(start == end) {
return 0;
}
ll minCost = INT_MAX;
for(int i = start; i < end; i++) {
ll cost = (arr[start - 1] * arr[i] * arr[end]) + matrixMul(start, i, arr) + matrixMul(i + 1, end, arr);
minCost = min(minCost, cost);
}
return minCost == INT_MAX? 0: minCost;
}
int main() {
vector<int> arr;
int n;
cin>> n;
for(int i = 0; i < n; i++) {
int ele;
cin>> ele;
arr.push_back(ele);
}
cout<< matrixMul(1, n - 1, arr);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKCmxsIG1hdHJpeE11bChpbnQgc3RhcnQsIGludCBlbmQsIHZlY3RvcjxpbnQ+ICZhcnIpIHsKICAgIAogICAgaWYoc3RhcnQgPT0gZW5kKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICAKICAgIGxsIG1pbkNvc3QgPSBJTlRfTUFYOwogICAgZm9yKGludCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgewogICAgICAgIGxsIGNvc3QgPSAoYXJyW3N0YXJ0IC0gMV0gKiBhcnJbaV0gKiBhcnJbZW5kXSkgKyBtYXRyaXhNdWwoc3RhcnQsIGksIGFycikgKyBtYXRyaXhNdWwoaSArIDEsIGVuZCwgYXJyKTsKICAgICAgICBtaW5Db3N0ID0gbWluKG1pbkNvc3QsIGNvc3QpOwogICAgfQogICAgCiAgICByZXR1cm4gbWluQ29zdCA9PSBJTlRfTUFYPyAwOiBtaW5Db3N0Owp9CgppbnQgbWFpbigpIHsKICAgIHZlY3RvcjxpbnQ+IGFycjsKICAgIGludCBuOwogICAgY2luPj4gbjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpbnQgZWxlOwogICAgICAgIGNpbj4+IGVsZTsKICAgICAgICBhcnIucHVzaF9iYWNrKGVsZSk7CiAgICB9CiAgICAKICAgIGNvdXQ8PCBtYXRyaXhNdWwoMSwgbiAtIDEsIGFycik7CglyZXR1cm4gMDsKfQoK