#AW169. Sudoku 2

Sudoku 2

题目描述

数独是一个 16×16 的单元格矩阵,由 16 个 4×4 的子矩阵组成。部分单元格已填入字母 AP(即英文字母表的前 16 个大写字母),如图 1 所示。


UVA1309 - Sudoku

游戏的目标是用 AP 的字母填满所有空白单元格,并满足以下规则:

  • 每一行包含所有字母 AP,且不重复;

  • 每一列包含所有字母 AP,且不重复;

  • 每个 4×4 的子矩阵包含所有字母 AP,且不重复。

初始网格已满足上述约束条件,并保证唯一解。

输入格式

输入测试文件包含多个测试用例

每个测试用例表示一个数独网格,包含连续的 16 行字符串。其中第 ii 个字符串表示网格的第 ii 行,长度为 16 个字符,并从行首开始排列。

字符串的字符取自集合 {\{ A, B, \dots, P, - }\},其中字母 A 至字母 P 表示已填写的单元格,- 表示空白单元格。

测试用例之间以单个空行分隔,输入以文件结束符(EOF)终止。

输出格式

对于每组测试数据,输出 16 行,每行 16 个字符,表示完成后的数独。

请注意,相邻两组数据之间应输出一个空行,但最后一组数据后面不应有空行。