#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,w[30],f[30][30],g[30][30];
void dfs(int l,int r)
{
if(l>r)return;
int k=g[l][r];
printf("%d ",k);
dfs(l,k-1),dfs(k+1,r);
}
int main()
{
int i,len,l,r,k,left,right,score;
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&w[i]);
for(len=1;len<=n;len++)for(l=1;l+len-1<=n;l++){
r=l+len-1;
if(len==1)f[l][r]=w[l],g[l][r]=l;
else for(k=l;k<=r;k++){
left=k==l?1:f[l][k - 1],right=k==r?1:f[k+1][r],score=left*right+w[k];
if(f[l][r]<score)f[l][r]=score,g[l][r]=k;
}
}
printf("%d\n",f[1][n]);
dfs(1,n);
return 0;
}