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`,因此该输出满足条件。

输出样例 1 的相邻格子示意图
### 样例解释 2
输出的 $4$ 行 $5$ 列网格和 $5$ 行 $4$ 列网格均满足条件。
由 ChatGPT 4.1 翻译