#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;
int main() {
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
int N, a;
vector<int> dims, D;
scanf("%d", &N);
if (N + 1 == 2)
return 0;
for (int i = 0; i <= N; i ++) {
scanf("%d", &a);
dims.push_back(a);
}
D.push_back(dims[0] * dims[1] * dims[2]);
int first = 0, last = 2;
if (N + 1 == 3)
return D[0];
D.push_back(min((dims[first] * dims[last] * dims[3] + D[0]), (dims[1] * dims[2] * dims[3] + dims[first] * dims[1] * dims[3])));
last ++;
for (int i = 4; i <= N; i ++) {
D.push_back(min((dims[first] * dims[last] * dims[i] + D[i - 3]), (dims[i - 2] * dims[i - 1] * dims[i] + D[i - 4] + dims[first] * dims[i - 2] * dims[i])));
last ++;
}
printf("%d\n", D[D.size() - 1]);
return 0;
}