#include "bits/stdc++.h" // マクロ群 #define REP(i,n) for(int i=0;i eated; int befor = 0; int after = 0; int bast = 0; int dontEatPosi = -1; REP2(i, 0, N + 1) { after = befor + V[i]; befor = bast; // 最大値と変化がない = 食べない if (bast > after) { // 1つ前の位置から開始して、前回食べれなかった位置に達するまで一個飛ばしで遡る for (int j = i - 1; j > dontEatPosi; j -= 2) { eated.push_back(j + 1); // 位置を記憶する } dontEatPosi = i; after = bast; } else { bast = after; } } // 回答1 PFL_N(bast); // 回答2 sort(eated.begin(), eated.end()); // 並べ替え for (auto item : eated) PFS_N(item); PFL_S("\n"); } int main() { Slove(); return 0; }