题目描述
一台只读评测机依次收到 个整数,随后要回答一个名次问题,但不允许把数据重新排布。
形式化地:给定 个整数 与整数 ,求第 小的值;相等的值各占一个名次,名次从 开始编号。
本题同时考核求解过程,约定如下:不允许对数组排序,也不允许以任何方式重排元素;对数据的比较只能通过判定函数 countLE 进行——向它传入整数 ,它返回 中值 的元素个数。
输出两行:第一行为第 小的值;第二行为求解过程中调用 countLE 的总次数。评测对两行均做精确比对;参考实现在值域 上以固定 轮的二分完成求解,第二行的正确答案恒为 ,且调用次数不得超过 。
输入格式
第一行两个整数 。
第二行 个整数 。
输出格式
第一行一个整数:第 小的值。
第二行一个整数:判定函数 countLE 的总调用次数。
样例
输入
5 4 5 2 8 2 9
输出
8 31
样例解释
升序为 ,第 小为 。验证:,而 ,故满足 的最小整数 为 。参考实现从长度 的区间出发,每轮取中点判定一次并把区间折半, 轮后区间长度变为 ,故第二行为 。
数据范围
- ;
- ;
- 。