#ABC228D. 线性探测

线性探测

线性探测

题目描述

有一个由 N=220N = 2^{20} 项组成的数列 A=(A0,A1,,AN1)A = (A_0, A_1, \dots, A_{N - 1})。初始时,所有元素都是 1-1

请按顺序处理 QQ 个查询。第 ii 个查询(1iQ1 \le i \le Q)由满足 ti=1t_i = 1ti=2t_i = 2 的整数 tit_i 以及整数 xix_i 表示,内容如下:

ti=1t_i = 1 时,按顺序执行以下处理。

  • h=xih = x_i 定义整数 hh
  • AhmodN1A_{h \bmod N} \neq -1 时,不断将 hh 的值加 11。可以证明,在本问题的约束下,该操作在有限次内结束。
  • AhmodNA_{h \bmod N} 的值改写为 xix_i

ti=2t_i = 2 时,输出此时 AximodNA_{x_i \bmod N} 的值。

另外,对于整数 a,ba, baa 除以 bb 的余数记作 amodba \bmod b

输入格式

输入按以下格式从标准输入给出:

QQ
t1t_1 x1x_1
\vdots
tQt_{Q} xQx_{Q}

输出格式

对每个满足 ti=2t_i = 2 的查询,将答案各输出一行。保证至少存在一个这样的查询。

样例

4
1 1048577
1 1
2 2097153
2 3
1048577
-1

因为 x1modN=1x_1 \bmod N = 1,所以第 11 个查询使 A1=1048577A_1 = 1048577

在第 22 个查询中,初始 h=x2h = x_2,此时 AhmodN=A11A_{h \bmod N} = A_{1} \neq -1,所以将 hh 的值加 11。此时 AhmodN=A2=1A_{h \bmod N} = A_{2} = -1,因此该查询使 A2=1A_2 = 1

在第 33 个查询中,输出 Ax3modN=A1=1048577A_{x_3 \bmod N} = A_{1} = 1048577

在第 44 个查询中,输出 Ax4modN=A3=1A_{x_4 \bmod N} = A_{3} = -1

注意,在本问题中 N=220=1048576N = 2^{20} = 1048576 是常数,不会在输入中给出。

数据范围

  • 1Q2×1051 \le Q \le 2 \times 10^5
  • ti{1,2}(1iQ)t_i \in \{ 1, 2 \} \, (1 \le i \le Q)
  • 0xi1018(1iQ)0 \le x_i \le 10^{18} \, (1 \le i \le Q)
  • 至少存在一个 ii1iQ1 \le i \le Q)使得 ti=2t_i = 2
  • 输入均为整数
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
2315
类型
传统题
Time Limit
4000ms
Memory Limit
1024MiB
上传者
标签