AT_xmascontest2015_c Colored Tiles

题目描述

[problemUrl]: https://atcoder.jp/contests/xmascontest2015noon/tasks/xmascontest2015_c 兔子用几种颜色将 $H$ 行 $W$ 列的格子涂色。我们将第 $i\ (1 \leq i \leq H)$ 行第 $j\ (1 \leq j \leq W)$ 列的格子称为格子 $(i, j)$。 鳗鱼对这个格子中包含多少个点对称的矩形感到好奇。 然而,兔子并不让鳗鱼看这个格子。 鳗鱼只能通过如下方式提问,来调查点对称矩形的数量: - “格子 $(a, b)$ 和格子 $(c, d)$ 颜色相同,且格子 $(a, d)$ 和格子 $(c, b)$ 颜色相同,这个说法正确吗?” 不过,兔子的耐心有限,只会回答最多 $4,500$ 次提问。

输入格式

首先,输入两个用空格分隔的整数 $H\ (1 \leq H \leq 5),\ W\ (1 \leq W \leq 100)$,表示格子的行数和列数。 > $H$ $W$ 接下来,你的程序可以进行 $0$ 次到 $4,500$ 次的提问。 每次提问时,先输出一个字符 `?`,以及 $4$ 个整数 $a\ (1 \leq a \leq H),\ b\ (1 \leq b \leq W),\ c\ (a \leq c \leq H),\ d\ (b \leq d \leq W)$,用空格分隔。表示你在询问:“格子 $(a, b)$ 和格子 $(c, d)$ 颜色相同,且格子 $(a, d)$ 和格子 $(c, b)$ 颜色相同,这个说法正确吗?” > ? $a$ $b$ $c$ $d$ 然后,你的程序会收到 `yes` 或 `no` 的字符串作为回答。 最后,你的程序必须输出字符 `!` 和答案,用空格分隔。 > ! $answer$ 输出答案后,**你的程序必须立即结束。** 如果没有立即结束,评测结果不确定。 如果输出不正确,结果也不确定(不一定是 `WA`)。 如果超过了提问次数限制,也会被判为 `WA`,请注意。 如果你的程序输出了正确答案并结束,将被判为正确。 **注意,输出后必须进行 flush。如果没有 flush,可能会被判为 TLE。** 各语言的输入输出方法可以参考 AtCoder 以往的题目(链接:[ABC 019 D: 高桥君与树的直径](http://abc019.contest.atcoder.jp/tasks/abc019_4))。 # 输入格式

输出格式

说明/提示

## 输入输出样例 以下是当兔子涂色的格子如下图时的输入输出样例。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_xmascontest2015_c/cea6b3425524a72739a5c094a4bcaaffaf607c6a.png)兔子涂色的格子示例 | 说明 | 程序输出 | 程序输入 | |:----:|:--------:|:--------:| | 行数和列数输入 | 2 3 | | | 询问“格子 $(1,1)$ 和格子 $(2,3)$ 颜色相同,且格子 $(1,3)$ 和格子 $(2,1)$ 颜色相同,这个说法正确吗?” | ? 1 1 2 3 | | | 回答 | yes | | | 询问“格子 $(1,1)$ 和格子 $(1,1)$ 颜色相同,且格子 $(1,1)$ 和格子 $(1,1)$ 颜色相同,这个说法正确吗?” | ? 1 1 1 1 | | | 回答 | yes | | | 询问“格子 $(1,1)$ 和格子 $(1,3)$ 颜色相同,且格子 $(1,3)$ 和格子 $(1,1)$ 颜色相同,这个说法正确吗?” | ? 1 1 1 3 | | | 回答 | no | | | 输出“格子中包含 $10$ 个点对称的矩形” | ! 10 | | 格子中包含的 $10$ 个点对称的矩形如下图所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_xmascontest2015_c/f084861a8855c76f7efbbe3755e3fac2088e061c.png)格子中包含的点对称矩形 由 ChatGPT 4.1 翻译