#include <bits/stdc++.h>
using namespace std;
struct node {
  long long id, nu;
} g[1005];
bool cmp1(node p, node q) { return p.nu > q.nu; }
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &g[i].nu);
    g[i].id = i;
  }
  sort(g + 1, g + n + 1, cmp1);
  long long num = 0, ans = 0;
  for (int i = 1; i <= n; i++) {
    ans += num * g[i].nu + 1;
    num++;
  }
  printf("%lld\n", ans);
  for (int i = 1; i <= n; i++) printf("%lld%c", g[i].id, i == n ? '\n' : ' ');
  return 0;
}
