P1733 猜数(IO交互版)
题目描述
评测机会在区间 $[1,10^9]$ 中选择一个整数,你应该写一个代码来猜测它。你最多可以问评测机 $50$ 个问题。
对于每一次询问,你可以向评测机询问区间 $[1,10^9]$ 中的一个整数,评测机会返回:
- 0,如果它为答案(即评测机所选的数字),且程序应该在此之后停止询问。
- -1,如果它小于答案。
- 1,如果它大于答案。
每次询问,你需要向**标准输出**输出一个 $[1,10^9]$ 中的整数,**然后清空缓冲区**。
你可以使用如下语句来清空缓冲区:
- 对于 C/C++:`fflush(stdout)`;
- 对于 C++:`std::cout
输入格式
无
输出格式
无
说明/提示
#### 数据规模与约定
设 $n$ 为答案。
- 对于 $50\%$ 的数据,保证 $n \leq 51$。
- 对于 $100\%$ 的数据,保证 $1 \leq n \leq 10^9$。
[本题交互库](https://www.luogu.com.cn/paste/uaece7av)。
#### 提示
本题参考程序:
```cpp
#include
#include
int main() {
for (int l = 1, r = 1000000000, mid = (l + r) >> 1, res; l > 1) {
std::cout res;
if (res == 0) {
return 0;
} else if (res == -1) {
l = mid + 1;
} else if (res == 1) {
r = mid - 1;
} else {
puts("OvO, I AK IOI"); // this statement will never be executed.
}
}
return 0;
}
```