/*
	记录状态不太好搞
	考虑计算每个数被计算多少次
	分制 + 递归 
*/
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <ctime>
#define N 20
#define inf 1234567898765431LL

using namespace std;

typedef long long LL;

int n;
int a[N];

// 复杂度不会证，但好像比 n! 小很多 
LL solve(int l, int r, int x, int y) {
	if(l + 1 == r) return 0;
	LL res = inf;
	for(int i = l + 1; i < r; ++i) {
		LL re = 1LL * (x + y) * a[i] + 
			    solve(l, i, x, x + y) +
		 	    solve(i, r, x + y, y);
		if(re < res) res = re;
	}
	return res;
}

int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
	printf("%lld\n", a[1] + solve(1, n, 1, 1) + a[n]);
	return 0;
}