#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main(){ int N, mx; cin >> N; vector V(N+1), ans; for (int i=0; i> V[i+1]; vector> dp(N+1, vector(2)); for (int i=1; i<=N; i++){ dp[i][0] = max({dp[i][0], dp[i-1][0], dp[i-1][1]}); dp[i][1] = max(dp[i][1], dp[i-1][0] + V[i]); } mx = max(dp[N][0], dp[N][1]); cout << mx << endl; for (int i=N; i>=1; i--){ if (mx == dp[i-1][0] + V[i]){ ans.push_back(i); mx -= V[i]; } } reverse(ans.begin(), ans.end()); for (auto x : ans) cout << x << " "; cout << endl; return 0; }