freee プログラミングコンテスト2022(AtCoder Beginner Contest 264) E - Blackout 2 (500)
最初にいくつの都市に電気が通っているか数えておく
これはUnionFind等でできる
繋げたのを外すより繋げていく方が楽なのでクエリを逆順に処理していく
クエリで新しく繋がる都市や発電所が無ければ状態は変わらない
そうでない場合かつ片方でのみ電気が通っている場合は通っていない方の集合の大きさの分だけ電気が通っている都市が増える
電気が通ってないのでその集合内に発電所は無い
電気が通っているかどうかはリーダーの都市にフラグを持たせて判定
最後に各クエリ時点での状態を出力
発電所の分を引くことに注意