G - Decomposite or Die

解説を見る
  • 実行時間制限:2000 ms
  • メモリ制限:1073741824 Bytes
  • 配点:650
  • ジャッジ:Batch

問題

整数 NN と長さが NN の数列 AA が与えられます。
どのような AA においても、ある数列 BB であって、
Ai=diBdA_i = \sum_{d|i} B_d を満たす BB がただ1つに定まるので、以下のクエリを順に処理してください。

ただし、did|i とは ddii の約数であることを指します。

クエリ

  • Ti=1T_i=1 の場合
    • k=xiyiBk\sum_{k=x_i}^{y_i} B_k を出力してください。
  • Ti=2T_i = 2 の場合
    • AxiA_{x_i}yiy_i に置き換えてください。

ただし、この問題では x,yx, y は直接は与えられず、前から順にクエリを処理することで得ることができる形式として与えられます。
具体的には、 Hx,HyH^x, H^y が与えられます。

  • Z1=0Z_1=0 を満たす数列 ZZ を考え、 xk=HkxZk,yk=HkyZkx_k = H^x_k \oplus Z_k, y_k = H^y_k \oplus Z_k の形で x,yx, y を与えます。
  • Tk=1T_k = 1 の場合、クエリ kk の答えを uu として Zk+1=ZkuZ_{k+1} = Z_k \oplus u とします。
    • uu が負の場合、64bit 整数における2の補数表現 に従ってください。
  • Tk=2T_k=2 の場合、 Zk+1=ZkZ_{k+1}=Z_k とします。

制約

  • 1N5×1051\leq N\leq 5\times 10^5
  • 1Q2×1051\leq Q\leq 2\times 10^5
  • Ti{0,1}(1iQ)T_i\in \{0, 1\} (1\leq i\leq Q)
  • 109Ai109-10^9 \leq A_i \leq 10^9

小課題

  • 小課題1 (160点)
    • Q=1,T1=1Q=1, T_1 = 1
  • 小課題2 (190点)
    • Ti=1 (1iQ)T_i = 1 ~ (1\leq i\leq Q)
  • 小課題3 (300点)
    • 追加の制約はありません

入力

NN
A1 A2  AN1 ANA_1~A_2~\cdots~A_{N-1}~A_N
QQ
T1 H1x H1yT_1~H^x_1~H^y_1
T2 H2x H2yT_2~H^x_2~H^y_2
\vdots
TQ1 HQ1x HQ1yT_{Q-1}~H^x_{Q-1}~H^y_{Q-1}
TQ HQx HQyT_Q~H^x_Q~H^y_Q

出力

1 行で、すべてを改行区切りで出力してください。

入力例1

6
-1 7 -6 1 -8 3
1
1 2 2

この入力はすべての小課題の制約を満たします。

出力例1

8

入力例2

6
-8 -6 7 -3 -5 -7
8
1 1 3
1 13 15
1 -3 -7
1 -5 -5
1 -10 -11
1 12 11
1 -15 -9
1 -26 -28

この入力は小課題 2, 3 の制約を満たします。

入力例3

6
5 9 1 0 2 -4
8
1 2 5
1 -9 -14
1 17 22
1 -27 -28
1 -28 -29
2 16 -18
1 16 17
2 -2 -5

この入力は小課題 3 の制約を満たします。

出力例3

-12
-25
-12
0
-13
-18

これらの入力例の実行結果はジャッジ結果として表示されません。