#LX1005. 线性探查存储器

线性探查存储器

题目描述

线性探查存储器是一种按照线性方式存储数据的结构。

它包含n=220n=2^{20}个槽位,初始时每个槽位都存储1-1,表示为空。

其储存方式为:如果你要将数xx储存到其中,指针会找到h=x%nh = x \% n的位置,如果位置hh为空(a[h]=1a[h] = -1),就将xx插入该位置,否则遇到冲突,指针跳到下一个位置,如果当前指针指向的位置已经是储存器的最后一个位置,指针就跳转到储存器的第一个位置,直到某一时刻指针指向的位置不为空,将xx插入此位置。

现在你需要处理一些询问,每次询问有以下两种类型:

  • 插入:将xx插入到储存器中。
  • 查询:查询当前位置x%nx\%n上储存的数的值。

输入格式

第一行包含一个正整数q(1q2×105)q(1\le q \le2 \times 10^5),询问的次数。

接下来qq行,每行包含两个整数ti(ti{1,2})t_i (t_i ∈\{1, 2\})xi(0xi1018)x_i(0 \le x_i \le 10^{18})

  • 如果ti=1t_i = 1表示插入操作
  • 如果ti=2t_i = 2表示查询操作

输出格式

对于每个查询操作,输出一行一个整数,表示查询结果,如果当前位置为空,输出1-1

题目保证至少存在一个查询操作。

样例

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