#include <bits/stdc++.h>
using namespace std;
long long pozsp[300010];
int val[300010];
map<int, int> firstap;
int main() {
  int n;
  scanf("%d", &n);
  for (int i(1); i <= n; i++) {
    scanf("%d", &val[i]);
    pozsp[i] = pozsp[i - 1] + (val[i] > 0 ? val[i] : 0);
  }
  long long best(-(1ll << 60));
  int st, dr;
  for (int i(1); i <= n; i++) {
    if (firstap.find(val[i]) == firstap.end())
      firstap[val[i]] = i;
    else {
      int p = firstap[val[i]];
      if (pozsp[i - 1] - pozsp[p] + 2ll * val[i] > best) {
        best = pozsp[i - 1] - pozsp[p] + 2ll * val[i];
        st = p, dr = i;
      }
    }
  }
  int nrtaiat(st - 1 + n - dr);
  for (int i(st + 1); i < dr; i++) nrtaiat += (val[i] < 0);
  printf("%lld %d\n", best, nrtaiat);
  for (int i(1); i < st; i++) printf("%d ", i);
  for (int i(st + 1); i < dr; i++)
    if (val[i] < 0) printf("%d ", i);
  for (int i(dr + 1); i <= n; i++) printf("%d ", i);
  return 0;
}
