#include"bits/stdc++.h" //#include using namespace std; #define print(x) cout<vec; int dfs(int num,bool f) { if (dp[num][f] > 0)return dp[num][f]; int res=0; if (num == n)res=0; else if (f) { res = dfs(num + 1, 0); } else if (!f) { res = max(dfs(num + 1, 1) + v[num], dfs(num + 1, 0)); } return dp[num][f]=res; } int main(){ memset(dp, 0, sizeof(dp)); cin >> n; if (n == 0) { print(0); return 0; } rep(i, 0, n) { cin >> v[i];} int ans = dfs(0, 0); print(dfs(0, 0)); bool f = 0; rep(i, 0, n) { if (ans - v[i] == dp[i+1][1]) { vec.push_back(i); ans -= v[i]; i++; } } rep(i, 0, vec.size()) { cout << vec[i]+1 << " "; } cout << endl; return 0; }