AT_kupc2019_g ABCのG問題

题目描述

有 $N$ 个网格。第 $i$ 个网格的大小为 $H_i$ 行 $W_i$ 列。请为每个网格的每个格子填写 `A`、`B`、`C` 中的一个字母,使其满足以下条件: - (相邻的两个格子中,一个写有 `A`,另一个写有 `B` 的格子对的数量)$=$ (相邻的两个格子中,一个写有 `B`,另一个写有 `C` 的格子对的数量)$=$ (相邻的两个格子中,一个写有 `C`,另一个写有 `A` 的格子对的数量)。 - 每一行、每一列都至少包含一个 `A`、一个 `B` 和一个 `C`。 这里,相邻的两个格子指的是在网格上共享顶点或边的两个格子。 此外,在本题的约束范围内,可以证明一定存在满足条件的填写方法。

输入格式

输入以如下格式从标准输入给出。 > $N$ $H_1$ $W_1$ $H_2$ $W_2$ $\cdots$ $H_N$ $W_N$

输出格式

对于每个 $i\ (1 \leq i \leq N)$,输出一个满足条件的 $H_i$ 行 $W_i$ 列的网格。令 $S^i_{yx}\ (1 \leq y \leq H_i,\ 1 \leq x \leq W_i)$ 表示第 $i$ 个网格第 $y$ 行第 $x$ 列填写的字符(`A`、`B` 或 `C`)。 > $S^1_{11}S^1_{12}\ldots S^1_{1W_1}$ > $S^1_{21}S^1_{22}\ldots S^1_{2W_1}$ > $\vdots$ > $S^1_{H_1 1}S^1_{H_1 2}\ldots S^1_{H_1 W_1}$ > $\vdots$ > $S^N_{11}S^N_{12}\ldots S^N_{1W_N}$ > $S^N_{21}S^N_{22}\ldots S^N_{2W_N}$ > $\vdots$ > $S^N_{H_N 1}S^N_{H_N 2}\ldots S^N_{H_N W_N}$

说明/提示

### 约束 - $1 \leq N \leq 1,000$ - $4 \leq H_i \leq 1,000$ - $4 \leq W_i \leq 1,000$ - $\sum_{i=1}^{N} H_i \times W_i \leq 10^6$ - 所有输入均为整数。 ### 样例解释 1 下图展示了输出样例 1,其中 `A` 和 `B`、`B` 和 `C`、`C` 和 `A` 相邻的格子对分别用红线、绿线、蓝线表示。红线、绿线、蓝线的数量均为 $10$,且每一行、每一列都至少包含一个 `A`、一个 `B` 和一个 `C`,因此该输出满足条件。 ![](https://img.atcoder.jp/kupc2019/04881331f9780f597e487766fa7368b3.png) 输出样例 1 的相邻格子示意图 ### 样例解释 2 输出的 $4$ 行 $5$ 列网格和 $5$ 行 $4$ 列网格均满足条件。 由 ChatGPT 4.1 翻译