#include<bits/stdc++.h>
#define F(i,a,b) for(int i=(a);i<=(b);++i)
#define F2(i,a,b) for(int i=(a);i<(b);++i)
#define dF(i,a,b) for(int i=(a);i>=(b);--i)
#define dF2(i,a,b) for(int i=(a);i>(b);--i)
#define dF3(i,a,b) for(int i=(a)-1;i>=(b);--i)
using namespace std;typedef long long ll;typedef double ld;int INF=0x3f3f3f3f;int INF2=0x7fffffff;ll LNF=0x3f3f3f3f3f3f3f3f;ll LNF2=0x7fffffffffffffff;

int n,q;
int a[1001], A[1001];
int b[1001], c[1001];
int B[1001], C[1001];
ll sum1,sum2;
int K[1001],cnt;
int Ans[1001],tot;

int main(){
	scanf("%d",&n);
	F(i,1,n) scanf("%d",a+i), (i&1?b:c)[(i+1)/2]=a[i];
	F(i,1,(n+1)/2)
		if(b[i]>0) B[i]=1, sum1+=b[i];
	F(i,1,n/2)
		if(c[i]>0) C[i]=1, sum2+=c[i];
	if(sum1==0&&sum2==0){
		int maxi=1;
		F(i,2,n) if(a[maxi]<a[i]) maxi=i;
		printf("%d\n%d\n",a[maxi],n-1);
		F(i,1,maxi-1) puts("1");
		dF(i,n-maxi+1,2) printf("%d\n",i);
		return 0;
	}
	if(sum1>sum2){
		F(i,1,n) if(i&1) A[i]=B[(i+1)/2];
	}
	else{
		F(i,1,n) if(!(i&1)) A[i]=C[i/2];
	}
	printf("%lld\n",max(sum1,sum2));
	int l=n+1,r=0;
	F(i,1,n) if(A[i]) l=min(l,i), r=max(r,i);
	F(i,1,l-1) Ans[++tot]=1;
	dF(i,n-l+1,r-l+2) Ans[++tot]=i;
	F(i,l,r) if(A[i]) ++cnt; else ++K[cnt];
	F(i,1,cnt-1){
		F(j,1,K[i]/2) Ans[++tot]=3;
		Ans[++tot]=2;
	}
	printf("%d\n",tot);
	F(i,1,tot) printf("%d\n",Ans[i]);
	return 0;
}