题目描述
有一个由 N=220 个项构成的序列 A=(A0,A1,…,AN−1)。初始时,每个项都是 \-1。
按顺序执行 Q 个查询。第 i 个查询(1≤i≤Q)由整数 ti 和另一个整数 xi 描述如下:
- 如果 ti=1,按顺序执行以下操作。
- 将整数 h 定义为 h=xi。
- 当 AhmodN=−1 时,不断将 h 增加 1。我们可以证明,在本问题的约束条件下,此过程会在有限次迭代之后结束。
- 用 xi 替换 AhmodN 的值。
- 如果 ti=2,则在此时打印出 AximodN 的值。
这里,对于整数 a 和 b,amodb 表示 a 除以 b 的余数。
约束条件
- 1≤Q≤2×105
- ti∈{1,2}(1≤i≤Q)
- 0≤xi≤1018(1≤i≤Q)
- 至少有一个 i 满足 ti=2。
- 输入中的所有值都是整数。
输入
从标准输入获取以下格式的输入:
Q
t1 x1
⋮
tQ xQ
输出
对于每个满足 ti=2 的查询,打印出一行响应。保证至少存在一个此类查询。
示例输入 1
4
1 1048577
1 1
2 2097153
2 3
示例输出 1
1048577
-1
我们有 x1modN=1,所以第一个查询将 A1 设置为 1048577。
在第二个查询中,初始时我们有 h=x2,其中 AhmodN=A1=−1,所以我们将 h 增加 1。现在我们有 AhmodN=A2=−1,因此此查询将 A2 设置为 1。
在第三个查询中,我们打印 Ax3modN=A1=1048577。
在第四个查询中,我们打印 Ax4modN=A3=−1。
注意,在该问题中,N=220=1048576 是一个常数,不在输入中给出。