#include <bits/stdc++.h>
using namespace std;
const int N = 32;
int f[N][N];
int g[N][N];
int w[N];
int n;
void dfs(int l, int r)
{
if (l > r)
return;
cout << g[l][r] << " ";
dfs(l, g[l][r] - 1);
dfs(g[l][r] + 1, r);
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
cin >> w[i];
for (int len = 1; len <= n; len++)
{
for (int i = 1; i + len - 1 <= n; i++)
{
int j = i + len - 1;
if (len == 1)
{
g[i][j] = i;
f[i][j] = w[i];
continue;
}
for (int k = i; k <= j; k++)
{
int left, right;
left = k == i ? 1 : f[i][k - 1];
right = k == j ? 1 : f[k + 1][j];
int temp = 0;
temp = left * right + w[k];
if (temp > f[i][j])
{
f[i][j] = temp;
g[i][j] = k;
}
}
}
}
cout << f[1][n] << endl;
dfs(1, n);
return 0;
}