QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100 Interactive

#2567. 隐藏的城堡

Statistics

这是一个交互式问题。

Roman 在一个 $n \times m$ 的棋盘上藏了一枚车(rook)。你需要找到它的确切位置。你最多可以向 Roman 询问 4 次以下问题:“有多少个单元格 $(i, j)$ 满足 $X_1 \le i \le X_2$ 且 $Y_1 \le j \le Y_2$,处于隐藏车的攻击范围内?”车会攻击同一行或同一列的所有单元格,包括它所在的单元格。

第一行包含一个整数 $t$,表示测试用例的数量 ($1 \le t \le 15\,000$)。

每个测试用例的交互开始于两个整数 $n$ 和 $m$,表示棋盘的尺寸 ($3 \le n, m \le 15$)。

要向 Roman 提问,请输出 “? $X_1$ $Y_1$ $X_2$ $Y_2$” ($1 \le X_1 \le X_2 \le n, 1 \le Y_1 \le Y_2 \le m$)。之后,你将收到一个整数 $K$:表示在 $X_1 \le i \le X_2$ 且 $Y_1 \le j \le Y_2$ 的范围内,处于隐藏车攻击下的单元格数量。每个测试用例最多可以询问 4 次。

要报告答案,请输出 “! $X$ $Y$”,其中 $(X, Y)$ 是隐藏车所在的单元格。

在每次查询后,请务必输出换行符并刷新缓冲区。你可以使用以下命令:

  • C++ 中使用 fflush(stdout)cout.flush()
  • Java 中使用 System.out.flush()
  • Pascal 中使用 flush(output)
  • Python 中使用 stdout.flush()

对于其他语言,请参阅其文档。如果你未能执行此操作,将获得 “Idleness limit exceeded” 判决。

样例

输入格式 1

2
6 6
8
2
7 5
11
4

输出格式 1

? 1 1 3 6
? 2 2 2 3
! 2 3
? 1 1 7 5
? 1 1 1 4
! 1 4

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.