#include <bits/stdc++.h>
using namespace std;
#define rep1(i,n) for(int i=1;i<=int(n);++i)
#define all(a) a.begin(),a.end()
typedef long long ll;
 
int main(void){
    int n;
    cin>>n;
    vector<ll> a(n+2);
    ll sum[2] = {};
    rep1(i,n){
        cin>>a[i];
        sum[i%2] += max(a[i],0LL);
    }
 
    // 全て負
    if(all_of(all(a), [](ll x){return x<=0;})){
        int pos = max_element(a.begin()+1, a.end()-1) - a.begin();
        cout<<a[pos]<<endl<<n-1<<endl;
        for(int i=n; i>pos; i--){
            cout<<i<<endl;
        }
        rep1(i,pos-1){
            cout<<1<<endl;
        }
        return 0;
    }

    int mod = (sum[0] > sum[1]) ? 1 : 0;
    rep1(i,n)if(i%2 == mod){
        a[i] = -1;
    }
 
    cout<<max(sum[0],sum[1])<<endl;
    vector<int> res;
 
    // 最初の正まで左端を選択
    int pos = 1;
    while(a[pos] < 0){
        res.push_back(1);
        pos++;
    }

    pos += 2;    
    while (pos <= n+1) {
        if (a[pos] < 0) {
            res.push_back(3);
            if (pos == n) {
                res.push_back(2);
            }
        } else {
            res.push_back(2);
        }
        pos += 2;
    }
 
    cout<<res.size()<<endl;
    for(int x : res){
        cout<<x<<endl;
    }
    return 0;
}