“Digraph” 是一个图论术语……哦,抱歉,这次不是。让我们暂时抛开书呆子气,谈谈语言(人类语言,而不是 PHP)。
二合字母(Digraphs)是指代表一个音素(声音)的两个字符组成的对。例如,英语中的 “ch”(如 “church”)就是一个单一的辅音音素。中欧地区的语言非常喜欢使用二合字母:匈牙利的 “sz”、捷克的 “ch” 和波兰的 “rz” 都是很好的例子。
对于非母语使用者来说,二合字母非常令人讨厌。我们将专门为这些人制作一个字母谜题。给定一个二合字母列表,请构造一个尽可能大的小写英文字母正方形,使得其行和列中都不包含这些二合字母。这意味着任意两个相邻的字母(从上到下或从左到右阅读)都不能构成一个二合字母。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是各测试用例的描述: 每个测试用例以一个整数 $n$ 开头,$0 \leqslant n \leqslant 676$,表示禁止的二合字母数量。接下来的 $n$ 行包含这些二合字母。
输出格式
对于每个测试用例,打印一个不包含任何给定二合字母的尽可能大的正方形。如果可以构造出大小为 $20 \times 20$ 或更大的正方形,则仅打印一个 $20 \times 20$ 的正方形。
样例
输入 1
2 628 aa az ba bb bc ... by ca cb cc ... cy da ... dy ... wa ... wy ya ... yy za zb ... zy zz 2 aa bb
输出 1
aw wz abababababababababab babababababababababa abababababababababab babababababababababa abababababababababab babababababababababa abababababababababab babababababababababa abababababababababab babababababababababa abababababababababab babababababababababa abababababababababab babababababababababa abababababababababab babababababababababa abababababababababab babababababababababa
说明
为了清晰起见,上述样例数据的一部分已被省略。你可以在工作站上访问完整的样例测试。