A + B

아직 제출이 없습니다시간 제한8초메모리 제한512 MB

문제

プログラミングコンテストの合宿で出す問題のアイディアが出ずに困っていたイクタ君は、ある日友人に相談した。

イクタ君「こういうアルゴリズムを使わないと解けないような問題が出したいんですけど、なにかありませんかね?」

友人「それではこういうものを考えたらいいんじゃないですか」

このようにしてその友人は以下のような問題の原案となるアイデアを考えてくれた。

2進数A,BA,Bが与えられた時、以下の様なクエリを処理せよ。

  • 出力クエリ: max{xx を2進数で表したときの、1の数 | Ax<A+BA \leq x < A+B }を出力

  • A変更クエリ: AAの最下位ビットからiiビット目(0-origin)を反転

  • B変更クエリ: BBの最下位ビットからiiビット目(0-origin)を反転

iiビット目というのが 0-origin で表されていることに注意せよ。 つまり、AAの最下位ビットから0ビット目とは最下位ビットを表す。

입력

入力は以下の形式で与えられる。

NN AA BB

Q_1Q\_{1}

...

Q_NQ\_{N}

1行目にクエリの数N,2進数A, Bが与えられる。

2~N+1行目には以下の様なクエリが与えられる。

  • Q

  • A ii

  • B ii

Qが出力クエリを、A ii,B iiはそれぞれAAの最下位ビットからiiビット目、BBの最下位ビットからiiビット目を反転させる変更クエリを表している。

출력

出力クエリごとに答えを1行に出力せよ。

제한

入力中の各変数は以下の制約を満たす。

  • 1N<300,0001 \leq N < 300,000

  • 1A,B300,0001 \leq |A|,|B| \leq 300,000 (A|A|AAの長さ)

  • A ii というクエリでは 0i<A0 \leq i < |A|

  • B ii というクエリでは 0i<B0 \leq i < |B|

  • BBが0になることはない