#include<stdio.h>
#include<iostream>
using namespace std;
typedef long long LL;
const int maxn=1077;
const int INF=1E9+77;

int N,A[maxn];
bool flag=false;

bool X[maxn];
int Ne[maxn],out[maxn],co;
void finish(){
	co=0;
	Ne[0]=-1;
	for(int i=1;i<N;++i){
		if(X[i-1]) Ne[i]=i-1;
		else Ne[i]=Ne[i-1];
	}

	LL s=0;
	for(int i=0;i<N;++i) if(X[i]) s+=A[i];
	cout<<s<<endl;

	int i;
	for(i=N-1;!X[i];--i){
		out[co++]=i;
	}

	while(i && Ne[i]>=0){
		for(i-=2;!X[i];i-=2){
			out[co++]=i;
		}
		out[co++]=i+1;
	}

	for(int j=0;j<i;++j) out[co++]=0;

	printf("%d\n",co);
	for(int i=0;i<co;++i) printf("%d\n",out[i]+1);
}

int main(){
	scanf("%d",&N);
	for(int i=0;i<N;++i){
		scanf("%d",A+i);
		if(A[i]>0) flag=true;
	}
	if(!flag){
		int ma=-INF,x;
		for(int i=0;i<N;++i) if(A[i]>ma){
			ma=A[i];
			x=i;
		}
		X[x]=true;
		finish();
		return 0;
	}
	int D;
	LL V=-INF;
	for(int d=0;d<2;++d){
		LL v=0;
		for(int i=d;i<N;i+=2){
			if(A[i]>0) v+=A[i];
		}
		//cerr<<"v:"<<v<<endl;
		//cerr<<"V:"<<V<<endl;
		if(v>V){
			V=v;
			D=d;
		}
	}

	//cerr<<"D:"<<D<<endl;
	for(int i=D;i<N;i+=2) if(A[i]>0) X[i]=true;
	finish();
	return 0;
}
