在n行n列的方格中,每个格子填入一个1~n之间的数字,使得每行中没有重复数字,每列上也没有重复数字。如图1所示是一个3行3列的合法的安排方案。
游戏开始可以规定某些格子已经有给定的数字。如图2所示,在2行2列的方格中,规定1行1列和2行2列的数字均为1,则得到唯一的如图3所示的方案。但如果规定1行1列数字为1,2行2列数字为2,则无法得到任何合法的方案(如图4所示)。
下面的程序求9行9列的一个安排方案,程序首先读入若干个已知格子上的数字,找到一个合理的安排方案后输出并退出程序。如果没有任何合法方案,则输出“No Solution!”(注意引号不用输出)。
程序填充格子的次序依次为:1行1列、1行2列、…1行9列、2行1列、2行2列、…2行9列、…9行1列、9行2列、…9行9列。
请你将空白处的程序补充完整 (注意:本题中的数独游戏和实际的数独游戏有一定的区别,并不需要保证同一个九宫格内的数字各不相同)
第一行输入一个非负整数n,表示规定的数字个数。
接下来的n行每行输入三个正整数x,y,z,表示规定第x行第y列的数字为z。
若有解,则输出找到的第一种方案
若无解,则输出"No Solution!"。
3
1 1 1
2 2 2
3 3 3
1 3 2 4 5 6 7 8 9
3 2 1 5 4 7 6 9 8
2 1 3 6 7 8 9 4 5
4 5 6 1 2 9 8 3 7
5 4 7 8 9 1 2 6 3
6 7 4 9 8 2 3 5 1
7 8 9 2 3 4 5 1 6
8 9 5 7 6 3 1 2 4
9 6 8 3 1 5 4 7 2