#B4. 猜数(I/O 式)
猜数(I/O 式)
题目背景
本题为“交互(I/O 式)”类型题目的测试用题。
题目描述
这是一道交互题。
你需要猜出一个 之间的整数 。
每次你可以询问一个 之间的整数 ,然后得知 与 的大小关系(小于、大于、或等于)。
你需要在 次内猜出这个整数 。
输入格式
第一行,一个正整数 。
交互方式
通过以 ? y
的格式输出来进行一次询问,你需要保证 为 之间的整数。你最多进行 次询问。
询问的输出结束后,交互器将输出一个字符,为 >
、=
、<
三种之一。为 >
则表示 ,其他同理。
通过以 ! x
的格式输出来报告答案,你需要保证 为 之间的整数。这次交互不算在询问的次数内。
如果你猜错了,交互器将输出 -1
,并且该测试点的结果将为答案错误(WA)。否则,交互器将不会输出。
在报告一次答案后,无论你是否猜对,你的程序应当立即结束。
如果你的某一次输出无效,交互器将输出 -1
,并且该测试点的结果将为答案错误(WA)。
如果你的程序接收到了 -1
而非有效回应,那么它应当立即结束,否则该测试点的结果可能不确定,因为它可能在从已关闭的流中读入。
在每次输出结束后,切记要输出换行符并刷新缓冲区:
- 在 C/C++ 中,使用
fflush(stdout)
。 - 在 C++ 中,使用
std::cout.flush()
或std::cout << std::flush
。 - 在 Pascal 中,使用
flush(output)
。 - 在 Python 中,使用
stdout.flush()
。 - 其它语言请自行查阅文档。
样例
7
<
>
? 4
? 2
! 3
数据范围
对于所有测试数据,。