#CF2096G. 奇妙的猜谜游戏
奇妙的猜谜游戏
交互流程从读取整数 开始。 首先输出一个整数 ()—— 你要进行的询问次数。
每次询问按以下格式输出一行:
- (, 为偶数,,所有 互不相同)—— 数组长度与数组元素。
当你完成全部 次询问后,读取一个字符串 ()—— 爱丽丝对每次询问的回应。
当你确定爱丽丝所想的数字后,输出一个整数 ()—— 目标数字。 随后处理下一个测试用例,若无剩余测试用例则结束程序。
输出全部 次询问后,务必输出换行并刷新输出缓冲区,否则会出现超时错误。对应语言的刷新方式:
- C++:使用 fflush(stdout) 或 cout.flush()
- Java:使用 System.out.flush()
- Pascal:使用 flush(output)
- Python:使用 stdout.flush()
- 其他语言请查阅对应文档
注意:即使你正确猜出了数字,但询问次数超过了 ,也会被判为答案错误。
本题禁止使用作弊代码。
2
3
?N
5
R?L
2
2 1 2
2 1 2
3
3
4 3 2 4 1
4 5 4 3 1
4 1 5 3 4
1
Hint 第一个样例:。我们进行 2 次询问: 和再次询问 。
- 第一次询问,爱丽丝回应 ,表示该次询问被忽略;
- 第二次询问,爱丽丝回应 ,表示目标数不在数组 中。 根据以上信息可以确定,爱丽丝所想的数字是 。 可以证明, 时所有合法策略都至少需要 2 次询问。
第二个样例:。我们进行 3 次询问:、、。
- 第一次询问,爱丽丝回应 ,表示目标数在数组 中;
- 第二次询问,爱丽丝回应 ,表示该次询问被忽略;
- 第三次询问,爱丽丝回应 ,表示目标数在数组 中。 根据以上信息可以确定,爱丽丝所想的数字是 。 可以证明, 时所有合法策略都至少需要 3 次询问。