#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;
}