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