#P0977. 遗迹中的宝石能量

遗迹中的宝石能量

题目描述

在艾泽拉遗迹深处,探险队不断发掘出古老的宝石。每颗宝石上都刻有一个整数,代表它蕴含的能量值。每次发掘后,队长会立即将能量值记录在手册中(同一种能量值可能被多次记录,手册会保留所有记录)。

远道而来的收藏家时常会前来咨询:他会说出一个期望的能量值 XX,队长需要根据手册已记录的能量值给出答复:

  • 若手册中存在能量值恰好等于 XX 的记录,则回答该能量值当前被记录的总次数
  • 若手册中不存在能量值等于 XX 的记录,则需要从已记录的所有能量值中,找出与 XX 最接近的一个(即绝对值差 PX|P - X| 最小)。如果存在多个最接近的能量值,队长会保守地给出其中最小的那个;
  • 如果手册中还没有任何记录,队长只能遗憾地表示“暂无发现”,用 1-1 表示。

请你编写一个程序,帮助队长高效地处理一系列操作。

输入格式

第一行包含一个整数 QQ,表示操作的总次数。

接下来 QQ 行,每行描述一个操作,由两个整数组成:

  • 第一个整数为操作类型,11 表示发掘宝石(记录能量值),22 表示收藏家咨询(查询)。
  • 第二个整数为 XX,表示发掘的能量值或咨询的期望值。

输出格式

对于每个类型为 22 的操作,输出一行一个整数,表示查询结果:

  • 若存在能量值等于 XX,输出其出现次数;
  • 否则,若手册非空,输出最接近且最小的能量值;
  • 若手册为空,输出 1-1

样例

7
2 5
1 8
2 5
1 2
2 5
1 5
2 5
-1
8
2
1

样例解释

11 次操作 2 5:手册为空,输出 1−1

22 次操作 1 8:手册记录 [8][8]

33 次操作 2 5:不存在 55,最接近的只有 88,距离 33,输出 88

44 次操作 1 2:手册记录变为 [2, 8][2,\ 8]

55 次操作 2 5:不存在 552288 距离均为 33,同为最接近,按规则取较小的 22,输出 22

66 次操作 1 5:手册记录变为 [2, 5, 8][2,\ 5,\ 8]

77 次操作 2 5:存在 55,当前出现次数为 11,输出 11

数据范围

对于 30%30\% 的数据,1Q10001\le Q\le 1000

对于 100%100\% 的数据,1Q2×1051 \le Q \le 2\times 10^5109X109-10^9 \le X \le 10^9XX 为整数。 输入中的所有操作类型只会是 1122,不会出现其他非法操作。