#include<cstdio>
#include<vector>
using namespace std;

const int MAX_N = 1000;

long long a[MAX_N];
bool use[MAX_N];

int main() {
	int n;
	scanf("%d", &n);
	long long sum[2] = {0, 0};
	int count[2] = {0, 0};
	bool corner = true;
	int max_i = 0;
	for(int i=0;i<n;i++) {
		scanf("%lld", &a[i]);
		if(a[i] > 0){
			sum[i%2] += a[i];
			count[i%2]++;
			corner = false;
		}
		if(a[i] > a[max_i]) max_i = i;
	}
	long long s;
	vector<int> v;
	if(corner) {
		s = a[max_i];
		for(int i=0;i<n;i++) use[i] = false;
		use[max_i] = true;
	} else {
		int parity = sum[0] > sum[1] ? 0 : 1;
		s = sum[parity];
		for(int i=0;i<n;i++) {
			use[i] = i%2 == parity && a[i] > 0;
		}
	}
	int i = n - 1;
	while(!use[i]) {
		v.push_back(i+1);
		i--;
	}
	i--;
	while(i >= 0) {
		if(i == 0) {
			v.push_back(1);
			break;
		} else {
			if(use[i-1]) {
				v.push_back(i+1);
			} else {
				if(i >= 2) {
					v.push_back(i);
				} else {
					v.push_back(1);
					v.push_back(1);
					break;
				}
				
			}
			i -= 2;
		}
	}
	printf("%lld\n", s);
	printf("%d\n", v.size());
	for(int i=0;i<v.size();i++) printf("%d\n", v[i]);
	return 0;
}
