問題文
二項演算子 ♣ は以下を満たします。
- 0 ♣ 0=S00
- 0 ♣ 1=S01
- 1 ♣ 0=S10
- 1 ♣ 1=S11
長さ N の 0 または 1 で構成された数列 A=(A1,A2,…,AN) が与えられます。
この数列に対して Q 個のクエリを順に処理してください。
i 番目のクエリでは、Ti,Xi,Yi が与えられます。Ti に応じて以下の処理を行ってください。
- Ti=1 のとき:AXi を Yi に置き換える
- Ti=2 のとき:(…(AXi ♣ AXi+1) ♣ AXi+2) ♣ …) ♣ AYi) を出力する。
制約
- 入力はすべて整数
- 0≤S00,S01,S10,S11≤1
- 2≤N,Q≤3×105
- 0≤Ai≤1
- 1≤Ti≤2
- 1≤Xi≤N
- 0≤Yi≤1 (Ti=1)
- 1≤Xi≤Yi≤N (Ti=2)
入力
出力
Ti=2 のクエリについて順に出力し、出力毎に改行してください。
サンプル
入力例1
0 1 1 1
3 3
1 0 1
2 2 3
1 1 0
2 1 2
このケースでは、♣ はビットごとの論理和を表します。はじめ A=(1,0,1) です。
1 番目のクエリでは A2 ♣ A3=1 を出力します。
2 番目のクエリでは A1 を 0 に置き換えます。この時点で A=(0,0,1) です。
3 番目のクエリでは A1 ♣ A2=0 を出力します。
入力例2
1 0 1 0
3 3
0 1 0
2 1 3
1 2 0
2 1 3
このケースでは、♣ は交換則や結合則を満たしていないことに注意しましょう。はじめ A=(0,1,0) です。
1 番目のクエリでは (A1 ♣ A2) ♣ A3=(0 ♣ 1) ♣ 0=0 ♣ 0=1 を出力します。
2 番目のクエリでは A2 を 0 に置き換えます。この時点で A=(0,0,0) です。
3 番目のクエリでは (A1 ♣ A2) ♣ A3=(0 ♣ 0) ♣ 0=1 ♣ 0=1 を出力します。