克里斯,一个神秘的填字游戏瘾君子,针对其解决顺序有一套固定的算法。
我们将使用以上图像作为指导。
- 克里斯总是从第一个交叉线索开始,在这种情况下是1 Across。克里斯是一位能力强的填字游戏爱好者,因此假设他将始终知道他正在研究的线索的答案。
- 克里斯完成一个线索后,他将检查与已完成的线索相邻的所有线索(在第一种情况下为1 Down,2 Down和3 Down),然后以最低编号完成该线索。如果没有相邻的线索,他将转到步骤3。
- 如果线索使下一个数字(如步骤3中所述)同时具有交叉线索和向下线索,则他将首先完成跨线索(确定性为100%,这在OCD上是边界!)。
- 如果没有相邻的线索,他将转到下一个数字上的下一个可用线索(交叉或向下)
- 从第2步重复进行,直到完成所有线索。
亲爱的程序员,这就是您的责任所在。您的任务是创建代码,该代码可以在提供了填字游戏模板后,根据Chris解决问题的算法提供描述线索顺序的输出。
该代码将接受填字游戏模板的输入,其形式为.
代表白色正方形和#
代表黑色正方形。
范例:
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
输入可以通过以下方式进行:a)读取填字游戏的表示形式的文件,或b)填字游戏的每一行的行输入,后跟\n
,第二个\n
指示EOF。
然后,它将根据上面描述的算法确定克里斯解决该问题的方法。
输出必须采用一系列逗号分隔的指令格式,格式为n(A|D)
,其中n
是线索编号,其后为A
for或D
down。
因此,在上面的示例中(来自图像和示例模板,两者是相同的),输出将是:
1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
最短的代码胜出...
测试中
您必须在提交时提供代码,字节数以及以.
和#
格式表示的四个测试用例之一,以及从此输入生成的输出。有四个测试用例,以下三个以及上面的示例模板。
测试用例示例:
测试用例1
.....#
.#.#.#
...#..
.#.#.#
.....#
##.#..
输出: 1A,1D,2D,3D,4A,5A,6A,7A
测试案例2
.....#..
.#.##..#
.#....#.
...##.#.
.####...
......##
输出: 1A,1D,2D,5A,4D,4A,3D,3A,7A,8A,6D,9A
测试用例3
.........#
#.#.#.#.#.
....#...#.
#...#.#.#.
..###.#.#.
.#....#...
.#####...#
.....###..
输出: 1A,2D,3D,4D,5D,7A,8A,9A,10A,11A,11D,12A,13A,6D,14D,15A,16A,17A
测试案例4
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
输出: 1A,1D,2D,3D,9A,10A,4D,4A,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
祝好运!
17A
在末尾省略了一个。排在第四4A
之后4D
。