#include <bits/stdc++.h>
using namespace std;
void qSort(long long **a, int first, int last) {
  long long i = first, j = last, x = a[(first + last) / 2][1];
  do {
    while (a[i][1] < x) i++;
    while (a[j][1] > x) j--;
    if (i <= j) {
      if (i < j) {
        long long tmp0, tmp1;
        tmp0 = a[i][1];
        tmp1 = a[i][2];
        a[i][1] = a[j][1];
        a[i][2] = a[j][2];
        a[j][1] = tmp0;
        a[j][2] = tmp1;
      }
      i++;
      j--;
    }
  } while (i <= j);
  if (i < last) qSort(a, i, last);
  if (first < j) qSort(a, first, j);
}
void build(long long *t, long long **a, int v, int tl, int tr) {
  if (tl == tr)
    t[v] = max(a[tl][0], (long long)0);
  else {
    int tm = (tl + tr) / 2;
    build(t, a, v * 2, tl, tm);
    build(t, a, v * 2 + 1, tm + 1, tr);
    t[v] = max(t[v * 2], (long long)0) + max(t[v * 2 + 1], (long long)0);
  }
}
long long sum(long long *t, int v, int tl, int tr, int l, int r) {
  if (l > r) return 0;
  if (l == tl && r == tr) return t[v];
  int tm = (tl + tr) / 2;
  return sum(t, v * 2, tl, tm, l, min(r, tm)) +
         sum(t, v * 2 + 1, tm + 1, tr, max(l, tm + 1), r);
}
int main() {
  int n;
  std::cin >> n;
  long long *t = new long long[4 * n];
  long long **forest = new long long *[n];
  for (int i = 0; i < n; i++) forest[i] = new long long[3];
  long long tmp;
  for (int i = 0; i < n; i++) {
    std::cin >> tmp;
    forest[i][0] = tmp;
    forest[i][1] = tmp;
    forest[i][2] = i;
  }
  qSort(forest, 0, n - 1);
  build(t, forest, 1, 0, n - 1);
  long long **couples = new long long *[(n / 2) + 1];
  for (int i = 0; i < n / 2 + 1; i++) couples[i] = new long long[2];
  int couple_count = 0;
  long long now = -1000000000000000000;
  int i = 0;
  while (i < n) {
    now = forest[i][1];
    int min = n, max = 0;
    while (i < n && forest[i][1] == now) {
      if (forest[i][2] < min) min = forest[i][2];
      if (forest[i][2] > max) max = forest[i][2];
      i++;
    }
    if (min != max && max != 0) {
      couples[couple_count][0] = min;
      couples[couple_count][1] = max;
      couple_count++;
    }
  }
  long long max = -100000000000000000;
  int num = 0;
  for (int i = 0; i < couple_count; i++) {
    long long su = 0;
    su += sum(t, 1, 0, n - 1, couples[i][0] + 1, couples[i][1] - 1);
    su = su + forest[couples[i][0]][0] + forest[couples[i][1]][0];
    if (su > max) {
      max = su;
      num = i;
    }
  }
  std::vector<int> toDelete;
  int del = 0;
  del = del + couples[num][0] + (n - 1 - couples[num][1]);
  for (int i = couples[num][0] + 1; i < couples[num][1]; i++)
    if (forest[i][0] < 0) {
      del++;
      toDelete.push_back(i);
    }
  std::cout << max << " " << del << std::endl;
  for (int i = 0; i < couples[num][0]; i++) std::cout << i + 1 << " ";
  for (std::vector<int>::iterator it = toDelete.begin(); it != toDelete.end();
       it++)
    std::cout << *(it) + 1 << " ";
  for (int i = couples[num][1] + 1; i < n; i++) std::cout << i + 1 << " ";
  return 0;
}
