阿兔与双宝神岛(简单版本)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
这是问题的简单版本。在这个版本中 。
这是一个交互式问题。每次输出一行后,必须立即刷新输出缓冲区。例如,在 C++ 中使用 fflush(stdout),在 Java 中使用 System.out.flush(),在 Pascal 中使用 flush(output)。
阿兔来到了一个神秘的岛屿,眼前是一块大小为 的矩阵地图,坐标从 到 。这片土地上 埋藏着两个宝藏,位置彼此不同。阿兔只会负责挖宝,而你需要负责找到它们的准确位置。
你每次可以选择一个位置 进行探测,系统将告诉你该位置到 最近一个宝藏的曼哈顿距离。
但阿兔时间紧迫,你最多只能探测 5 次!必须在这 5 次之内准确找出两个宝藏的位置,否则阿兔将离你而去……
交互程序
交互程序首先输出一个整数 (),表示测试数据的组数。
接下来每组测试数据包含一行两个整数 (),表示岛屿的长与宽。
保证每组测试用例隐藏着的两个宝藏位置不同,且都在地图内。
在每个测试用例中,你的程序需要输出探测或猜测,交互程序会给予相应的回应:
- 探测:输出
? x y,表示你想探测位置 (最多探测 次),系统将回复一行一个整数 表示当前位置到最近宝藏的曼哈顿距离。 - 猜测:输出
! x1 y1 x2 y2,表示你猜测宝藏分别位于 和 ,如果你成功找到了两个宝藏(顺序任意),交互程序将输出1。 - 如答案错误、格式错误或超过询问次数等,交互程序会直接终止并返回
-1判定答案错误,若你的程序接收到此结果但没有终止,则会判定时间超限等不可预知的错误。
1
5 5
0
1
1
1
? 1 2
? 5 5
? 3 5
! 1 2 4 5