时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Cidoai 喜欢小 C。
它某天和小 C 在玩一个游戏。小 C 需要猜一个在
![[1,n]](https://www.nowcoder.com/equation?tex=%5B1%2Cn%5D)
之间的数,它会先给小 C 一个长度为

的询问列表

,Cidoai 会根据答案

对列表上的每个数给出
大于答案、
小于答案或是
等于答案的回答。
小 C 认为一次无效询问是:如果存在一个

满足

且

或满足

且

,则询问

是一次无效询问。
Cidoai 想要捉弄一下小 C,因此它会根据询问列表确定答案

,满足它不在小 C 的询问列表中且
无效的询问次数最多,如果有多个满足条件的数,输出最小的那个。
Cidoai 保证,对于题目所给的所有数据,不存在无解的情况。
由于输入量过大,

数列不会被直接输入,而是由参数生成,伪代码如下:
def rnd():
p=(1<<32)
ret=seed
seed=(seed xor ((seed<<13) mod p)) mod p
seed=(seed xor ((seed>>17) mod p)) mod p
seed=(seed xor ((seed<<5) mod p)) mod p
return ret
for i=1 to k:
a[i]=(rnd() mod n) + 1
其中

由输入给定。
rnd 函数的 C++ 代码如下:
unsigned seed;
unsigned rnd(){
unsigned ret=seed;
seed^=seed<<13;
seed^=seed>>17;
seed^=seed<<5;
return ret;
}
输入描述:

。
输出描述:
一行一个整数表示答案。
备注:
在 C++ 中,unsigned int 的运算会自动对
取模。