#P1374. Crosswords
Crosswords
P1374. 横向填字游戏
问题描述
一个横向填字游戏可以存储为一个$$ m x n $$的矩阵,其中 表示白色方格, 表示黑色方格。某些方格会被编号,并且这些编号对应着需要填入横向或纵向单词的描述。一个方格会被编号,如果它是白色方格,并且满足以下条件之一:
- (a) 其下方的方格是白色,并且其上方没有白色方格。
- (b) 其左侧没有白色方格,并且其右侧的方格是白色。
方格的编号从左到右、从上到下依次进行。
从矩阵可以绘制出一个横向填字图。在图中,每个方格用一个 $$4x6$$ 的字符框表示。黑色方格和白色方格(编号和未编号的方格)的表示如下(其中 nnn 是方格的编号):
对于黑色方格:
++++++
++++++
++++++
++++++
对于编号的白色方格:
++++++
+nnn +
+ +
++++++
对于未编号的白色方格:
++++++
+ +
+ +
++++++
框中的其余字符为空格。如果边缘有黑色方格,则应从图中移除这些方格(见示例)。仅使用必要的空格作为填充字符。行尾不要使用任何不必要的空格。
输入
输入由若干块组成,每块表示一个横向填字游戏。每块的第一行包含两个整数 和 (均小于 25),以空格分隔。接下来的 行中,每行包含 个 或 ,以空格分隔。最后一块是空的,即 $$m = n = 0$$。
输出
对于除最后一块外的每个块,输出对应的横向填字图。每个图后跟两个空行。
输入示例 1
6 7
1 0 0 0 0 1 1
0 0 1 0 0 0 0
0 0 0 0 1 0 0
0 1 0 0 1 1 1
0 0 0 1 0 0 0
1 0 0 0 0 0 1
5 3
1 0 1
0 0 0
1 1 1
0 0 0
1 0 1
0 0
输出示例 1
+++++++++++++++++++++
+001 + +002 +003 +
+ + + + +
++++++++++++++++++++++++++++++++++++
+004 + ++++++005 + +006 +007 +
+ + ++++++ + + + +
++++++++++++++++++++++++++++++++++++
+008 + +009 + + +010 + +
+ + + + + + + +
+++++++++++++++++++++ +++++++++++
+ ++++++011 + +
+ ++++++ + +
++++++++++++++++++++++++++++++++++++
+012 +013 + ++++++014 +015 + +
+ + + ++++++ + + +
++++++++++++++++++++++++++++++++++++
+016 + + + + +
+ + + + + +
++++++++++++++++++++++++++
++++++
+001 +
+ +
++++++++++++++++
+002 + + +
+ + + +
++++++++++++++++
++++++++++++++++
+003 +004 + +
+ + + +
++++++++++++++++
+ +
+ +
++++++
来源
Central Europe 1996
如果需要进一步帮助,请告诉我!