#aBC339G. [ABC339G] Smaller Sum

[ABC339G] Smaller Sum

AT_abc339_g [ABC339G] Smaller Sum

题目描述

给定一个长度为 NN 的数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N)

请回答以下 QQ 个查询。第 ii 个查询如下:

  • ALi,ALi+1,,ARiA_{L_i},A_{L_i+1},\dots,A_{R_i} 中所有不超过 XiX_i 的数的总和。

但你需要以在线方式回答这些查询。
“在线回答查询”是指,在回答某个查询之后,才会得知下一个查询的内容。

因此,第 ii 个查询并不会直接给出,而是以加密后的输入 αi, βi, γi\alpha_i,\ \beta_i,\ \gamma_i 的形式给出。请按照以下步骤还原原本的第 ii 个查询并作答。

  • B0=0B_0=0Bi=B_i=(第 ii 个查询的答案)。
  • 此时,可以通过如下方式解密查询:
    • Li=αiBi1L_i = \alpha_i \oplus B_{i-1}
    • Ri=βiBi1R_i = \beta_i \oplus B_{i-1}
    • Xi=γiBi1X_i = \gamma_i \oplus B_{i-1}

其中,xyx \oplus y 表示 xxyy 的按位异或(XOR)。

按位异或(XOR)是这样定义的:对于非负整数 A,BA,BABA \oplus B 的二进制表示中,第 2k2^k 位(k0k \geq 0)的数,如果 A,BA,B 的该位中只有一个为 11,则为 11,否则为 00

例如,35=63 \oplus 5 = 6(二进制表示为:011101=110011 \oplus 101 = 110)。

输入格式

输入以如下格式从标准输入读入。

NN A1A_1 A2A_2 \dots ANA_N QQ α1\alpha_1 β1\beta_1 γ1\gamma_1 α2\alpha_2 β2\beta_2 γ2\gamma_2 \vdots αQ\alpha_Q βQ\beta_Q γQ\gamma_Q

输出格式

共输出 QQ 行。
ii 行输出第 ii 个查询的答案。

输入输出样例 #1

输入 #1

8
2 0 2 4 0 2 0 3
5
1 8 3
10 12 11
3 3 2
3 6 5
12 0 11

输出 #1

9
2
0
8
5

说明/提示

数据范围

  • 所有输入均为整数。
  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 0Ai1090 \leq A_i \leq 10^9
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 对于加密后的查询,有:
    • 0αi, βi, γi10180 \leq \alpha_i,\ \beta_i,\ \gamma_i \leq 10^{18}
  • 对于解密后的查询,有:
    • 1LiRiN1 \leq L_i \leq R_i \leq N
    • 0Xi1090 \leq X_i \leq 10^9

样例解释 1

数列为 A=(2,0,2,4,0,2,0,3)A=(2,0,2,4,0,2,0,3)。该输入包含 55 个查询。

  • 初始时,B0=0B_0=0
  • 第一个查询为 α=1, β=8, γ=3\alpha=1,\ \beta=8,\ \gamma=3
  • 解密后 L1=1, R1=8, X1=3L_1=1,\ R_1=8,\ X_1=3
  • 该查询的答案为 99,记为 B1B_1
  • 下一个查询为 α=10, β=12, γ=11\alpha=10,\ \beta=12,\ \gamma=11
  • 解密后 L2=3, R2=5, X2=2L_2=3,\ R_2=5,\ X_2=2
  • 该查询的答案为 22,记为 B2B_2
  • 下一个查询为 α=3, β=3, γ=2\alpha=3,\ \beta=3,\ \gamma=2
  • 解密后 L3=1, R3=1, X3=0L_3=1,\ R_3=1,\ X_3=0
  • 该查询的答案为 00,记为 B3B_3
  • 下一个查询为 α=3, β=6, γ=5\alpha=3,\ \beta=6,\ \gamma=5
  • 解密后 L4=3, R4=6, X4=5L_4=3,\ R_4=6,\ X_4=5
  • 该查询的答案为 88,记为 B4B_4
  • 下一个查询为 α=12, β=0, γ=11\alpha=12,\ \beta=0,\ \gamma=11
  • 解密后 L5=4, R5=8, X5=3L_5=4,\ R_5=8,\ X_5=3
  • 该查询的答案为 55,记为 B5B_5

由 ChatGPT 4.1 翻译