#P13057. [GCJ 2020 #1B] Blindfolded Bullseye
[GCJ 2020 #1B] Blindfolded Bullseye
Description
Gary 有一面巨大的正方形墙,高度和宽度均为 纳米。Gary 在墙上放置了一个圆形飞镖靶。飞镖靶的半径 介于 和 纳米之间(含端点),且完全位于墙内(允许接触边缘)。飞镖靶的中心与墙的每条边的距离均为整数纳米。
Gary 邀请了他的朋友 Mika 来玩一个有趣的游戏。Gary 蒙住 Mika 的眼睛,并挑战她向飞镖靶的中心投掷飞镖。为了帮助她,每当 Mika 向墙上投掷飞镖时,Gary 会告诉她飞镖是否击中了飞镖靶。
Mika 不知道飞镖靶在墙上的具体位置,但由于她投掷飞镖的技术非常高超,可以精确到纳米级别。也就是说,她可以瞄准并击中墙上任意一个与边缘距离为整数纳米的点。每次投掷后,Gary 会立即告诉她是否击中了飞镖靶的中心、飞镖靶的其他部分,或者完全未击中飞镖靶(即击中墙面)。
你能帮助 Mika 在不超过 300 次投掷的情况下击中飞镖靶的中心吗?
交互协议
初始时,你的程序应读取一行,包含三个整数 、 和 ,分别表示测试用例的数量以及飞镖靶半径的最小值和最大值(单位为纳米)。(注意, 和 在同一测试集中对所有测试用例相同。)然后,你需要处理 个测试用例。
我们将可投掷的点表示为 ,其中 和 是介于 和 之间的整数。点 表示该点距离墙的左边缘 纳米,距离墙的底边缘 纳米。因此,点 位于墙的正中心。
对于每个测试用例,裁判会秘密选择一个飞镖靶的半径 和中心 。、 和 是裁判为每个测试用例设计的整数(非随机),且满足题目限制。对于每个测试用例,你最多可以与裁判进行 300 次交互。你的程序代表 Mika,裁判程序代表 Gary。每次交互包含以下步骤:
- 你的程序输出一行,包含两个整数 和 (均在 到 之间),表示投掷的坐标。
- 裁判会响应一行,内容为以下之一:
CENTER:如果 且 (即击中中心)。HIT:如果 (即击中飞镖靶但未击中中心)。MISS:其他情况(未击中飞镖靶)。
当裁判返回 CENTER 后,它会开始等待下一个测试用例的交互(如果有)。
如果你的输出格式错误或超出范围,裁判会返回 WRONG。如果在 300 次交互内未收到 CENTER,或者收到 WRONG,裁判会终止通信并判定为错误答案。如果成功在第 个测试用例返回 CENTER,裁判会终止通信并判定为正确。如果程序超时或内存超限,会相应判定。
Input Format
参见交互协议。
Output Format
参见交互协议。
Hint
样例解释
以下是一个使用测试集 1 限制的样例交互:
// 读取 t = 20, a = 999999995, b = 999999995
t, a, b = readline_int_list()
// 裁判秘密选择 R = 999999995 和 X = -1, Y = 3
// 尝试投掷到墙的左上角,未击中飞镖靶
printline -1000000000 1000000000 to stdout
flush stdout
r = readline_string() // 返回 MISS
// 尝试投掷到墙的中心,击中飞镖靶但未击中中心
printline 0 0 to stdout
flush stdout
r = readline_string() // 返回 HIT
// 幸运地直接投掷到飞镖靶中心
printline -1 3 to stdout
flush stdout
r = readline_string() // 返回 CENTER
// 裁判开始下一个测试用例,选择 R = 999999995, X = 5, Y = 5
// 尝试投掷超出允许范围
printline -1234567890 1234567890 to stdout
flush stdout
r = readline_string() // 返回 WRONG
exit // 退出以避免超时错误
你可以使用交互测试工具在本地或平台上测试。工具的使用说明包含在注释中。请注意,该工具并非真实裁判系统,行为可能有所不同。
数据范围
- 。
- $\mathbf{A} \leqslant \mathbf{R} \leqslant \mathbf{B}$。
- $-10^{9} + \mathbf{R} \leqslant \mathbf{X} \leqslant 10^{9} - \mathbf{R}$。
- $-10^{9} + \mathbf{R} \leqslant \mathbf{Y} \leqslant 10^{9} - \mathbf{R}$。
测试集 1(3 分,可见判定)
- 。
测试集 2(12 分,可见判定)
- 。
测试集 3(19 分,隐藏判定)
- 。
- 。
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号