#include <bits/stdc++.h>
using namespace std;
int n, a[35];
int dp[35][35], root[35][35];
vector<int> fff;
void f(int l, int r) {
if (l > r) return;
int k = root[l][r];
fff.push_back(k);
f(l, k - 1);
f(k + 1, r);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
freopen("jfecs.in", "r", stdin);
freopen("jfecs.out", "w", stdout);
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 1; i <= n; i++) {
dp[i][i] = a[i];
root[i][i] = i;
}
for (int len = 2; len <= n; len++) {
for (int l = 1; l + len - 1 <= n; l++) {
int r = l + len - 1;
for (int k = l; k <= r; k++) {
int left = (k == l) ? 1 : dp[l][k - 1];
int right = (k == r) ? 1 : dp[k + 1][r];
int ans = left * right + a[k];
if (ans > dp[l][r]) {
dp[l][r] = ans;
root[l][r] = k;
}
}
}
}
cout << dp[1][n] << endl;
f(1, n);
for (int i = 0; i < fff.size(); i++) {
cout << fff[i] << " ";
}
cout << endl;
return 0;
}