AT_abc261_e [ABC261E] Many Operations

Description

[problemUrl]: https://atcoder.jp/contests/abc261/tasks/abc261_e 変数 $ X $ と、$ X $ の値を変更する $ N $ 種類の操作があります。操作 $ i $ は整数の組 $ (T_i,A_i) $ で表され、意味は次の通りです。 - $ T_i=1 $ のとき、$ X $ の値を $ X\ {\rm\ and}\ A_i $ に置き換える。 - $ T_i=2 $ のとき、$ X $ の値を $ X\ {\rm\ or}\ A_i $ に置き換える。 - $ T_i=3 $ のとき、$ X $ の値を $ X\ {\rm\ xor}\ A_i $ に置き換える。 変数 $ X $ を値 $ C $ で初期化した状態から、以下の処理を順に実行してください。 - 操作 $ 1 $ を行い、操作後の $ X $ の値を出力する。 - 続けて、操作 $ 1,2 $ を順に行い、操作後の $ X $ の値を出力する。 - 続けて、操作 $ 1,2,3 $ を順に行い、操作後の $ X $ の値を出力する。 - $ \vdots $ - 続けて、操作 $ 1,2,\ldots,N $ を順に行い、操作後の $ X $ の値を出力する。 $ {\rm\ and},\ {\rm\ or},\ {\rm\ xor} $ とは 非負整数 $ A,\ B $ の $ {\rm\ and},\ {\rm\ or},\ {\rm\ xor} $ は、以下のように定義されます。 - $ A\ {\rm\ and}\ B $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ A,\ B $ を二進表記した際の $ 2^k $ の位の数のうち両方が $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ である。 - $ A\ {\rm\ or}\ B $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ A,\ B $ を二進表記した際の $ 2^k $ の位の数のうち少なくとも一方が $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ である。 - $ A\ {\rm\ xor}\ B $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ A,\ B $ を二進表記した際の $ 2^k $ の位の数のうちちょうど一方が $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ である。 例えば、$ 3\ {\rm\ and}\ 5\ =\ 1 $、 $ 3\ {\rm\ or}\ 5\ =\ 7 $、 $ 3\ {\rm\ xor}\ 5\ =\ 6 $ となります。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 2\times\ 10^5 $ - $ 1\leq\ T_i\ \leq\ 3 $ - $ 0\leq\ A_i\ \lt\ 2^{30} $ - $ 0\leq\ C\ \lt\ 2^{30} $ - 入力に含まれる値は全て整数である ### Sample Explanation 1 最初、$ X $ の値は $ 10 $ です。 - 操作 $ 1 $ を行うと $ X $ の値は $ 9 $ になります。 - 続けて操作 $ 1 $ を行うと $ X $ の値は $ 10 $ になり、さらに操作 $ 2 $ を行うと $ 15 $ になります。 - 続けて操作 $ 1 $ を行うと $ X $ の値は $ 12 $ になり、さらに操作 $ 2 $ を行うと $ 13 $ に、さらに続けて操作 $ 3 $ を行うと $ 12 $ になります。