UVA1309 Sudoku 2

题目描述

数独是一个 16×16 的单元格矩阵,由 16 个 4×4 的子矩阵组成。部分单元格已填入字母 `A` 至 `P`(即英文字母表的前 16 个大写字母),如图 1 所示。 ![ UVA1309 - Sudoku](https://cdn.luogu.com.cn/upload/image_hosting/uiqor7xy.png) 游戏的目标是用 `A` 至 `P` 的字母填满所有空白单元格,并满足以下规则: - 每一行包含所有字母 `A` 至 `P`,且不重复; - 每一列包含所有字母 `A` 至 `P`,且不重复; - 每个 4×4 的子矩阵包含所有字母 `A` 至 `P`,且不重复。 初始网格已满足上述约束条件,并保证唯一解。

输入格式

**输入测试文件包含多个测试用例**。 每个测试用例表示一个数独网格,包含连续的 16 行字符串。其中第 $i$ 个字符串表示网格的第 $i$ 行,长度为 16 个字符,并从行首开始排列。 字符串的字符取自集合 $\{$ `A`, `B`, $\dots$, `P`, `-` $\}$,其中字母 `A` 至字母 `P` 表示已填写的单元格,`-` 表示空白单元格。 测试用例之间以单个空行分隔,输入以文件结束符(`EOF`)终止。

输出格式

对于每组测试数据,输出 16 行,每行 16 个字符,表示完成后的数独。 **请注意,相邻两组数据之间应输出一个空行,但最后一组数据后面不应有空行。**