#include<bits/stdc++.h>
using namespace std;
int a[105],f[105][105],n,ans;
int dfs(int l,int r) {
int maxn,lsum,rsum;
for(int i=1; i<=r; i++) {
maxn=0;
lsum=rsum=1;
if((i-1)-l>0) {
lsum=dfs(l,i-1);//枚举左子树
}
if(r-(i+1)>0) {
rsum=dfs(i+1,r);//枚举右子树
}
if(maxn>lsum*rsum+a[i]) {
maxn=lsum*rsum+a[i];
f[l][r]=i;//记录
}
}
return maxn;
}
void print(int l,int r) {
int k=f[l][r];
cout<<f[l][r]<<" ";
if((k-1)-l>0) {
print(l,k-1);
}
if(r-(k+1)>0) {
print(k+1,r);
}
}
int main() {
cin>>n;
for(int i=1; i<=n; i++) {
cin>>a[i];
}
ans=dfs(1,n);
cout<<ans<<endl;
print(1,n);
return 0;
}