D - Handstand 考えたこと 反転させる領域が重なってる時、同じ結果をもたらす重なってない反転方法があるから、重なってないと仮定しても差し支えない 区間が交わらないとしてよい 区間反転の合成はXOR よって、K個の0の塊をひっくり返して、1番長い1の塊を作れば良い 先頭と末尾に長さ0以上の1の塊があるとみなす、条件分岐をなくすため。 i番目の1の塊の始点と、i+k番目の1の塊の終点の距離が最大になるところを求めればいい 線形時間で始点と終点を列挙して、線形時間で最大値を求める 公式解説OK