ll f(int l,int r,ll w1,ll w2){
if(l>r) return 0;
if(l==r) return a[l]*(w1+w2);
ll res=inf;
for(int mid=l;mid<=r;mid++)
res=min(res,f(l,mid-1,w1,w1+w2)+f(mid+1,r,w1+w2,w2)+a[mid]*(w1+w2));
return res;
}
int main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
printf("%lld\n",f(2,n-1,1,1)+a[1]+a[n]);
return 0;
}