QOJ.ac

QOJ

시간 제한: 1.0 s 메모리 제한: 1024 MB 총점: 100 인터랙티브 해킹 가능 ✓

#17263. 检测失踪的船只

통계

这是一个交互式问题。

科学考察船的海洋探险进行得很顺利,但在某一时刻,科学家们进入了一个与海岸失去联系的区域。第一个问题是他们无法将研究数据传回大陆。不幸的是,他们将无法继续前行,必须返回。但第二个问题是,由于失去了联系,没有可靠的方法可以返回!留在岸上的科学家团队已经发送了一架无人机,它将寻找船只的位置,然后引导它返回海岸。

被研究的海洋区域表示为一个 $n \times n$ 的网格。船只在水平或垂直方向上占据 $k > 1$ 个连续的单元格。网格的行从上到下从 $1$ 到 $n$ 编号,列从左到右从 $1$ 到 $n$ 编号。通过一次询问,无人机可以选择一个单元格 $(r, c)$。如果船只在第 $r$ 行或第 $c$ 列中至少占有一个单元格,则搜索成功结束。否则,在询问之后,船只可能会保持在原位,或者根据其朝向沿其轴线向任一方向移动一个单元格。船只不能离开被研究的海洋区域;船只的所有单元格必须保持在网格内。

图 1 展示了一个 $n = 5$,$k = 2$,且检查无人机位置 $(r, c) = (1, 2)$ 的例子。箭头表示在询问后船只可以移动到的位置。

图 1. 移动示例

目标是通过击中一个必定包含船只至少一个单元格的行或列,在最少可能的操作次数内找到船只。

输入格式

输入数据的第一行包含两个整数 $n$ 和 $k$($3 \le n \le 10$,$2 \le k \le n$),分别表示网格的大小和船只的长度。

交互协议

要进行一次询问,请输出两个整数 $r$ 和 $c$($1 \le r, c \le n$)。询问的响应将写入标准输入流:如果尚未找到船只,你将收到数字 0;如果已找到船只,你将收到数字 1。一旦你读取到数字 1,程序必须立即终止。如果你读取到数字 0,你可以进行新的询问。

请注意,交互器是自适应的(adaptive),船只的移动不一定有固定的策略。

如果你的询问次数超过了保证找到船只所需的最少次数,或者询问的坐标超出了研究的海洋区域,你的程序将被判定为 Wrong Answer,且对该询问的响应将为数字 -1。在读取到响应 -1 后,程序必须立即终止。如果你的解决方案在找到船只后没有立即终止,或者在找到船只之前就终止了,或者在读取到 -1 后继续执行,它将被视为不正确,且评测结果可能是未定义的。

在每次询问后,请不要忘记输出换行符并刷新标准输出流的缓冲区。你可以使用以下函数:

  • C++ 中的 fflush(stdout)std::cout.flush()
  • Java 中的 System.out.flush()
  • Pascal 中的 flush(output)
  • Python 中的 stdout.flush()
  • 其他语言请参阅相关文档。

样例

输入样例 1

3 2
1

输出样例 1

2 2

说明

在样例中,我们对单元格 $(2, 2)$ 进行了一次询问,这使我们无论船只位于何处,都能在一次移动中找到它。作为对这次移动的响应,程序读取到了数字 1,随后程序终止,因为已经找到了船只。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.