本番で解けなくてひどい目に…見た目で無理そうと判断して飛ばしたのがチンパンプレーだったという話で、あとで考えたらそう難しくなかったのが余計に痛すぎる。
Twitter見てたら遅延セグ木とかいもす法とか言ってる人が多いですが、差分更新したほうが簡単じゃないかということでその解法を。
解法
最初からとの間がつながっていないとする。この場合は、との差の総和がそのまま答えになる。
これを初期値として、橋を切り離す位置を後ろにずらしながら差分更新していくことを考える。橋を切る位置が後ろに一つずれるというのは、番目の島が切り離されて番目の島として後ろに接続されることと同じである。
なので、がであるようなについて、,との距離を、との距離に置き換えればよい。置き換えた後は、をに置き換え、次の島を見ていく。
以後、頭の島はと変化していくので、までこれを繰り返すだけで良い。
最終的な答えが出るまでにに登場する島を最初から最後までなめる必要があるので回ループが回り、各は1回ずつチェックされるので、全体でで答えが出る。