luogu#P9477. [_-0 C] 猜数
[_-0 C] 猜数
题目背景
本质相同的代码原则上至多提交 次。
小 和小 在玩猜数游戏,但是因为风声太大,他们听不清楚对方说的话……
题目描述
评测机在区间 中等概率随机地选择一个整数 ,你的任务是猜测这个数。
你可以每次给出一个 中的整数 ,询问 和 的大小关系。你最多可以询问 次。
但是,由于某些原因,评测机有 的概率会出错。
具体地说:
- 如果 ,那么评测机返回
=
。 - 如果 ,且当前已经是第 次询问,那么评测机返回
!
。 - 得到以上两种结果后,你应当停止询问。
- 如果 ,那么评测机有 的概率返回
>
,有 的概率返回<
。 - 如果 ,那么评测机有 的概率返回
<
,有 的概率返回>
。
每次询问,你需要向标准输出输出一个 中的整数,然后清空缓冲区。
你可以使用如下语句来清空缓冲区:
- 对于 C/C++:
fflush(stdout)
; - 对于 C++:
std::cout << std::flush
; - 对于 Java:
System.out.flush()
; - 对于 Python:
stdout.flush()
; - 对于 Pascal:
flush(output)
; - 对于其他语言,请自行查阅对应语言的帮助文档。
特别的,对于 C++ 语言,在输出换行时如果你使用 std::endl
而不是 '\n'
,也可以自动刷新缓冲区。
然后你需要从标准输入中输入一个字符,代表评测机返回的结果。
输入格式
开始询问之前,一行,三个用空格分隔的整数 。
对于每一次询问,一行,一个字符,一定是 =
,!
,>
,<
四者之一。
输出格式
对于每一次询问,一行,一个 中的整数。
100 0 10
>
<
=
50
25
37
100 10 10
<
<
=
50
25
37
100 0 2
>
!
50
25
提示
样例 解释:
此时该测试点的状态为 AC
。
样例 解释:
时,,有 的概率输出 <
,恰好输出了 <
。
样例 解释:
此时该测试点的状态为 WA
。
本题采用捆绑测试。
每个 Subtask 下设有 个测试点,你只需通过其中至少 个测试点即可得到该 Subtask 对应的分数。
本题不使用子任务依赖。
对于所有数据,。
编号 | 分值 | 时限 | ||
---|---|---|---|---|