这是一道交互题,给定两个正整数 n,k,你需要通过 ≤2n 次询问猜出长度为 n 的序列 {ai} 中的第 k 小值。
询问分为两种类型:
or i j
,交互器会返回 aioraj 的值。
and i j
,交互器会返回 aiandaj 的值。
其中需要满足 1≤i,j≤n 且 i=j。
最后你需要输出 finish res
,其中 res 表示你的答案。
3≤n≤104,1≤k≤n,0≤ai≤109。
首先有个结论:x+y=(xory)+(xandy)。
证明可以考虑每一位的贡献。
那么用 2n−2 次询问求出 a1+ai,用两次询问求出 ai+aj 即可解方程得到 a1,进而得出序列 a。