AGC049 B - Flip Digits (600)
逆にTからSを作ることを考える
1の数は変わらないか2の倍数個増えるかになるので、SとTで1の数の偶奇が異なったら不可能
できる操作は、右の要素が0の時にこの要素を反転して右を1にする、になる
Tの中の0の位置を事前にSetに持っておく
左から見ていく
$ S_i = T_iなら何もしない
$ T_i = 1ならSetから右側で最も近い0を見つけてきて、そこと値を交換する
距離の分だけ操作数を増やす
もし存在しない場合は構築不可能
$ S_i = 1なら$ T_{i+1} = 0か確認する
違う場合は$ T_i = 1の場合と同様に$ T_{i+1}=0となるように交換を行う
$ T_i = T_{i+1} = 0となっているので、これらを両方0にする
最終的に$ S = TならOK