#P10828. [EC Final 2020] Fillomino

[EC Final 2020] Fillomino

Description

庞教授是庞国的国王。庞国是一个大小为 n×mn\times m 的棋盘。第 ii 行第 jj 列的格子记作格子 (i,j)(i, j),其中 1in,1jm1\le i\le n, 1\le j\le m。如果两个格子共享一条边,则它们是连通的。这个棋盘是一个环面,也就是说,对于所有 1xn,1ym1\le x\le n, 1\le y\le m,格子 (1,y)(1,y) 也与 (n,y)(n,y) 连通,格子 (x,1)(x,1) 也与 (x,m)(x,m) 连通。

庞教授有三个儿子。我们称他们为大儿子、二儿子和三儿子。他们每个人都住在庞国的一个格子中。第 ii 个儿子住在格子 (xi,yi)(x_i, y_i)。没有两个儿子住在同一个格子中。庞教授希望将庞国的格子分配给他的儿子们,使得:

  • 每个格子恰好属于一个儿子。
  • 对于所有 1i31\le i\le 3,有 cnticnt_i 个格子属于第 ii 个儿子。
  • 对于所有 1i31\le i\le 3,属于第 ii 个儿子的格子是连通的。
  • 对于所有 1i31\le i\le 3,第 ii 个儿子所在的格子必须属于他自己。

请帮助庞教授找到一个可能的解决方案。

Input Format

第一行包含一个整数 TT (1T1051\leq T\leq 10^5),表示测试用例的数量。

对于每个测试用例,第一行包含两个整数 n,mn, m (3n,m5003\leq n,m \leq 500),用一个空格分隔。

下一行包含三个正整数 cnt1,cnt2,cnt3cnt_1,cnt_2,cnt_3 (cnt1+cnt2+cnt3=nmcnt_1+cnt_2+cnt_3 = n m),用空格分隔。

接下来的 3 行中的第 ii 行包含两个整数 xi,yix_i, y_i (1xin,1yim1\le x_i\le n, 1\le y_i\le m),用一个空格分隔。

保证 (x1,y1)(x_1,y_1)(x2,y2)(x_2, y_2)(x3,y3)(x_3, y_3) 是不同的。

保证所有测试用例中 nmnm 的总和不超过 10610^6

Output Format

对于每个测试用例,如果没有解决方案,输出一行 -1\texttt{-1}。否则,输出 nn 行。每行应包含 mm 个字符。如果格子 (i,j)(i, j) 属于大儿子,则第 ii 行第 jj 个字符应为 A\texttt{A};如果属于二儿子,则为 B\texttt{B};如果属于三儿子,则为 C\texttt{C}。对于所有 1i31\le i\le 3,格子 (xi,yi)(x_i, y_i) 必须属于第 ii 个儿子。对于所有 1i31\le i\le 3,属于第 ii 个儿子的格子必须是连通的。

2
3 3
1 3 5
1 1
2 2
3 3
4 4
5 5 6
2 2
2 3
3 3
ABB
CBC
CCC
BABB
BABC
CACC
AACC

Hint

(由 ChatGPT 4o 翻译)