A.排序查查查(easy)
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

某理工大学晚上强制熄灯后,同学们只能靠手电筒和应急灯学习。
宿管会按照一个事先未知的顺序,每晚记录一个宿舍的照明亮度值。
这些亮度值恰好是 1, 2, \dots, n 的一个排列,每个值只会出现一次。

每晚熄灯后,宿管会按顺序得到一个亮度值 x,将其记录进系统。
记录完毕后,同学们会询问当前已记录的所有亮度值中,k的亮度值是多少(k 由宿管当晚给出,且保证 1 \le k \le 当前已记录的数量)。

你需要帮助宿管快速回答每个询问。

输入描述:

第一行是一个整数 n(<=1e6),表示总共有 n 个亮度值,也是操作的总天数。

接下来 n 行,每行两个整数 x, k,表示:
- 将亮度值 x 加入已记录集合(x1 \sim n 的一个排列,不会重复);
- 然后询问当前集合中第 k 小的数。

输出描述:

对于每天的询问,输出一行一个整数,表示第 k 小的亮度值。
示例1

输入

复制
5
3 1
1 2
5 3
2 2
4 1

输出

复制
3
3
5
2
1

备注:

【数据规模与约定】
- 对于 100\% 的数据,1 \leq n \leq 10^6,输入的 x1 \sim n 的一个排列,每次询问的 k 满足 1 \le k \le 当前已插入的元素个数。