EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2)
H
Fumo Temple
Codeforces
3500
原题
← G2→
翻译中…

*This temple only magnifies the mountain's power.*Badeline

翻译中…

This is an interactive problem.

翻译中…

You are given two positive integers $n$ and $m$ ($\bf{n \le m}$).

翻译中…

The jury has hidden from you a rectangular matrix $a$ with $n$ rows and $m$ columns, where $a_{i,j} \in \{ -1, 0, 1 \}$ for all $1 \le i \le n$ and $1 \le j \le m$. The jury has also selected a cell $(i_0, j_0)$. Your goal is to find $(i_0,j_0)$.

翻译中…

In one query, you give a cell $(i, j)$, then the jury will reply with an integer.

翻译中…
  • If $(i, j) = (i_0, j_0)$, the jury will reply with $0$.
  • Else, let $S$ be the sum of $a_{x,y}$ over all $x$ and $y$ such that $\min(i, i_0) \le x \le \max(i, i_0)$ and $\min(j, j_0) \le y \le \max(j, j_0)$. Then, the jury will reply with $|i - i_0| + |j - j_0| + |S|$.
翻译中…

Find $(i_0, j_0)$ by making at most $n + 225$ queries.

翻译中…

Note: the grader is not adaptive: $a$ and $(i_0,j_0)$ are fixed before any queries are made.

翻译中…

Input

翻译中…

Each test contains multiple test cases. The first line of input contains a single integer $t$ ($1 \le t \le 50$) — the number of test cases. The description of the test cases follows.

翻译中…

The only line of each test case contains two integers $n$ and $m$ ($1 \le n \le m \le 5000$) — the numbers of rows and the number of columns of the hidden matrix $a$ respectively.

翻译中…

It is guaranteed that the sum of $n \cdot m$ over all test cases does not exceed $25 \cdot 10^6$.

翻译中…

Interaction

翻译中…

The interaction for each test case begins by reading the integers $n$ and $m$.

翻译中…

To make a query, output "? i j" ($1 \le i \le n, 1 \le j \le m$) without quotes. Afterwards, you should read one single integer — the answer to your query.

翻译中…

If you receive the integer $-1$ instead of an answer or a valid value of $n$ or $m$, it means your program has made an invalid query, has exceeded the limit of queries, or has given an incorrect answer on the previous test case. Your program must terminate immediately to receive a Wrong Answer verdict. Otherwise, you can get an arbitrary verdict because your solution will continue to read from a closed stream.

翻译中…

When you are ready to give the final answer, output "! i j" ($1 \le i \le n, 1 \le j \le m$) without quotes — the indices of the hidden cell. After solving a test case, your program should move to the next one immediately. After solving all test cases, your program should be terminated immediately.

翻译中…

After printing a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:

翻译中…
  • fflush(stdout) or cout.flush() in C++;
  • System.out.flush() in Java;
  • flush(output) in Pascal;
  • stdout.flush() in Python;
  • see documentation for other languages.
翻译中…

Hacks

翻译中…

To hack, use the following format:

翻译中…

The first line contains an integer $t$ ($1 \le t \le 50$) — the number of test cases.

翻译中…

The first line of each test case contains two integers $n$ and $m$ ($1 \le n \le m \le 5000$) — the sizes of the hidden matrix.

翻译中…

The second line of each test case contains two integers $i_0$ and $j_0$ ($1 \le i_0 \le n, 1 \le j_0 \le m$) — the hidden cell.

翻译中…

Then $n$ lines follow. The $i$-th of them contains the string $s_i$ of length $n$, consisting only of the characters -, 0, and +. Here, $a_{ij} = -1$ if $s_{ij} = \mathtt{-}$, $a_{ij} = 0$ if $s_{ij} = \mathtt{0}$, and $a_{ij} = 1$ if $s_{ij} = \mathtt{+}$.

翻译中…

The sum of $n \cdot m$ over all test cases should not exceed $25 \cdot 10^6$.

翻译中…

As an example, the hack format for the example input is:

翻译中…

$\texttt{2}\\ \texttt{3}\,\texttt{4} \\ \texttt{1}\,\texttt{4} \\ \texttt{+0+0} \\ \texttt{+00+} \\ \texttt{0---} \\ \texttt{1}\,\texttt{1}\\\texttt{1}\,\texttt{1}\\\texttt{0}$

翻译中…

Note

翻译中…

The hidden matrix in the first test case:

翻译中…
$1$ $0$ $1$ $\color{red}{\textbf{0}}$
$1$ $0$ $0$ $1$
$0$ $-1$ $-1$ $-1$
翻译中…

The hidden matrix in the second test case:

翻译中…
$\color{red}{\textbf{0}}$
翻译中…

Note that the line breaks in the example input and output are for the sake of clarity, and do not occur in the real interaction.

翻译中…

样例

Input #1
2
3 4

5

3

5

1 1

0
Output #1
? 1 1

? 3 3

? 3 2

! 1 4

? 1 1

! 1 1
InputCopy OutputCopy
题目信息
题号
1987H
时间限制
4 s
内存限制
512 MB
标签
交互题

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。