UVA1309 Sudoku 2
题目描述
数独是一个 16×16 的单元格矩阵,由 16 个 4×4 的子矩阵组成。部分单元格已填入字母 `A` 至 `P`(即英文字母表的前 16 个大写字母),如图 1 所示。

游戏的目标是用 `A` 至 `P` 的字母填满所有空白单元格,并满足以下规则:
- 每一行包含所有字母 `A` 至 `P`,且不重复;
- 每一列包含所有字母 `A` 至 `P`,且不重复;
- 每个 4×4 的子矩阵包含所有字母 `A` 至 `P`,且不重复。
初始网格已满足上述约束条件,并保证唯一解。
输入格式
**输入测试文件包含多个测试用例**。
每个测试用例表示一个数独网格,包含连续的 16 行字符串。其中第 $i$ 个字符串表示网格的第 $i$ 行,长度为 16 个字符,并从行首开始排列。
字符串的字符取自集合 $\{$ `A`, `B`, $\dots$, `P`, `-` $\}$,其中字母 `A` 至字母 `P` 表示已填写的单元格,`-` 表示空白单元格。
测试用例之间以单个空行分隔,输入以文件结束符(`EOF`)终止。
输出格式
对于每组测试数据,输出 16 行,每行 16 个字符,表示完成后的数独。
**请注意,相邻两组数据之间应输出一个空行,但最后一组数据后面不应有空行。**