#P1710. 数独(puzzle)

数独(puzzle)

题目描述

给定整数 NN 以及由 ABC 组成的长度为 NN 的字符串 RRCC,请解决以下问题。

有一个 N×NN \times N 的网格,最初所有格子都是空的。

你可以在每个格子中写入 ABC 中至多一个字符(也可以保持为空)。

请判断是否存在一种写法,使得以下所有条件都被满足。如果存在,请输出一种写法。

  • 每一行和每一列都恰好包含一个 A、一个 B 和一个 C
  • ii 行中最左边被写入的字符必须等于 RR 的第 ii 个字符。
  • ii 列中最上面被写入的字符必须等于 CC 的第 ii 个字符。

输入格式

输入三个整数 N,R,CN,R,C

输出格式

如果不存在满足条件的写法,请输出一行 No

否则先输出一行 Yes。接下来的 NN 行中,第 ii 行输出一个长度为 NN 的字符串 AiA_i

  • AiA_i 的第 jj 个字符为 . 时,表示第 ii 行第 jj 列的格子为空。
  • AiA_i 的第 jj 个字符为 A 时,表示第 ii 行第 jj 列的格子写入了 A
  • AiA_i 的第 jj 个字符为 B 时,表示第 ii 行第 jj 列的格子写入了 B
  • AiA_i 的第 jj 个字符为 C 时,表示第 ii 行第 jj 列的格子写入了 C

如果存在多种满足条件的写法,输出任意一种均可。

输入输出样例 #1

输入 #1

5
ABCBC
ACAAB

输出 #1

Yes
AC..B
.BA.C
C.BA.
BA.C.
..CBA

样例输出的网格满足以下所有条件,因此是正确答案:

  • 每一行恰好包含一个 A、一个 B 和一个 C
  • 每一列恰好包含一个 A、一个 B 和一个 C
  • 每一行最左边被写入的字符依次为 ABCBC
  • 每一列最上面被写入的字符依次为 ACAAB

输入输出样例 #2

输入 #2

3
AAA
BBB

输出 #2

No

对于该输入,不存在满足条件的写法。

数据范围

  • NN3355 之间的整数。
  • R,CR, C 均为由 ABC 组成的长度为 NN 的字符串。