D. 阿兔与双宝神岛(简单版本)

    交互题 1000ms 256MiB

阿兔与双宝神岛(简单版本)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

这是问题的简单版本。在这个版本中 n,m300n, m \le 300

这是一个交互式问题。每次输出一行后,必须立即刷新输出缓冲区。例如,在 C++ 中使用 fflush(stdout),在 Java 中使用 System.out.flush(),在 Pascal 中使用 flush(output)

阿兔来到了一个神秘的岛屿,眼前是一块大小为 n×mn \times m 的矩阵地图,坐标从 (1,1)(1,1)(n,m)(n,m)。这片土地上 埋藏着两个宝藏,位置彼此不同。阿兔只会负责挖宝,而你需要负责找到它们的准确位置。

你每次可以选择一个位置 (x,y)(x, y) 进行探测,系统将告诉你该位置到 最近一个宝藏的曼哈顿距离

但阿兔时间紧迫,你最多只能探测 5 次!必须在这 5 次之内准确找出两个宝藏的位置,否则阿兔将离你而去……

交互程序

交互程序首先输出一个整数 tt1t10001 \le t \le 1000),表示测试数据的组数。

接下来每组测试数据包含一行两个整数 n,mn, m2n,m3002 \le n, m \le 300),表示岛屿的长与宽。

保证每组测试用例隐藏着的两个宝藏位置不同,且都在地图内。

在每个测试用例中,你的程序需要输出探测或猜测,交互程序会给予相应的回应:

  • 探测:输出 ? x y,表示你想探测位置 (x,y)(x, y)(最多探测 55 次),系统将回复一行一个整数 dd 表示当前位置到最近宝藏的曼哈顿距离。
  • 猜测:输出 ! x1 y1 x2 y2,表示你猜测宝藏分别位于 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2),如果你成功找到了两个宝藏(顺序任意),交互程序将输出 1
  • 如答案错误、格式错误或超过询问次数等,交互程序会直接终止并返回 -1 判定答案错误,若你的程序接收到此结果但没有终止,则会判定时间超限等不可预知的错误。
1
5 5

0

1

1

1


? 1 2

? 5 5

? 3 5

! 1 2 4 5

浙江机电职业技术大学训练赛 7

未参加
状态
已结束
规则
XCPC
题目
6
开始于
2025-8-9 13:30
结束于
2025-8-9 16:30
持续时间
3 小时
主持人
参赛人数
11