問題文

二項演算子 \clubsuit は以下を満たします。

  • 0  0=S000\ \clubsuit\ 0 = S_{00}
  • 0  1=S010\ \clubsuit\ 1 = S_{01}
  • 1  0=S101\ \clubsuit\ 0 = S_{10}
  • 1  1=S111\ \clubsuit\ 1 = S_{11}

長さ NN00 または 11 で構成された数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots ,A_N) が与えられます。 この数列に対して QQ 個のクエリを順に処理してください。

ii 番目のクエリでは、Ti,Xi,YiT_i, X_i, Y_i が与えられます。TiT_i に応じて以下の処理を行ってください。

  • Ti=1T_i=1 のとき:AXiA_{X_i}YiY_i に置き換える
  • Ti=2T_i=2 のとき:((AXi  AXi+1)  AXi+2)  )  AYi)(\dots (A_{X_i}\ \clubsuit\ A_{X_i+1})\ \clubsuit\ A_{X_i+2})\ \clubsuit\ \dots )\ \clubsuit\ A_{Y_i}) を出力する。

制約

  • 入力はすべて整数
  • 0S00,S01,S10,S1110\le S_{00},S_{01},S_{10},S_{11} \le 1
  • 2N,Q3×1052\le N,Q\le 3\times 10^5
  • 0Ai10\le A_i\le 1
  • 1Ti21\le T_i\le 2
  • 1XiN1\le X_i\le N
  • 0Yi1 (Ti=1)0\le Y_i\le 1\ (T_i=1)
  • 1XiYiN (Ti=2)1\le X_i\le Y_i\le N\ (T_i=2)

入力

S00 S01 S10 S11S_{00}\ S_{01}\ S_{10}\ S_{11}

N QN\ Q

A1 A2 ANA_1\ A_2\ \dots A_N

T1 X1 Y1T_1\ X_1\ Y_1

\qquad\vdots

TQ XQ YQT_Q\ X_Q\ Y_Q

出力

Ti=2T_i=2 のクエリについて順に出力し、出力毎に改行してください。

サンプル

入力例1
0 1 1 1
3 3
1 0 1
2 2 3
1 1 0
2 1 2
出力例1
1
0

このケースでは、\clubsuit はビットごとの論理和を表します。はじめ A=(1,0,1)A=(1,0,1) です。

11 番目のクエリでは A2  A3=1A_2\ \clubsuit\ A_3 = 1 を出力します。

22 番目のクエリでは A1A_100 に置き換えます。この時点で A=(0,0,1)A=(0,0,1) です。

33 番目のクエリでは A1  A2=0A_1\ \clubsuit\ A_2 = 0 を出力します。

入力例2
1 0 1 0
3 3
0 1 0
2 1 3
1 2 0
2 1 3
出力例2
1
1

このケースでは、\clubsuit は交換則や結合則を満たしていないことに注意しましょう。はじめ A=(0,1,0)A=(0,1,0) です。

11 番目のクエリでは (A1  A2)  A3=(0  1)  0=0  0=1(A_1\ \clubsuit\ A_2)\ \clubsuit\ A_3 =(0\ \clubsuit\ 1)\ \clubsuit\ 0 = 0\ \clubsuit\ 0 = 1 を出力します。

22 番目のクエリでは A2A_200 に置き換えます。この時点で A=(0,0,0)A=(0,0,0) です。

33 番目のクエリでは (A1  A2)  A3=(0  0)  0=1  0=1(A_1\ \clubsuit\ A_2)\ \clubsuit\ A_3 = (0\ \clubsuit\ 0)\ \clubsuit\ 0 = 1\ \clubsuit\ 0 = 1 を出力します。

提出


Go (1.21)