1683: Nonogram 生成器

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:43 解决:12

题目描述

  Nonogram 是一种逻辑游戏,以猜谜的方式绘画点阵图。在一个网格中,每一行和列都有一组数,玩家需根据它们来填满或留空格子,最后就可以由此得出一幅图画。   如下图,游戏开始之前只有左边和上面的数字,中间的点阵图是玩家得到的结果。每行左边的数字描述了这行里面有多少条独立的线。如第一行左边的“6 4 2”表示第一行有三条线,长度依次为 6、4、2。列上方的数字也类似。   BUCT-ACM 的成员打算做一个自己的 Nonogram 的游戏,第一步就是把网上下载到的小图案转换成 Nonogram 里的数字描述形式。现在就请你完成这步。

输入

  第一行两个整数 h w(1 ≤ h, w ≤20),分别表示点阵图的宽度和高度。   以下 h 行,每行 w 个字符,描述了这个点阵图,其中“#”表示黑色的点,“.”表示空白的位置。

输出

  一共 h + w 行。   先 h 行,依次描述每行左边的数字,数字之间用空格隔开。   然后 w 行,依次描述每列上方的数字,数字之间用空格隔开。   如果某一行或者列没有任何颜色标记,则需要输出一个空行。

样例输入 复制

16 16
######..####..##
#......#.####..#
#......######..#
#.......###.#..#
#.....#...##...#
#....#.....#...#
#....#....#....#
#...#.....#....#
#...#....#.....#
#...##...#.....#
#..#.##.#......#
#..#...##......#
#..#...#.......#
#..##.#........#
#..###.........#
##.##..#########

样例输出 复制

6 4 2
1 1 4 1
1 6 1
1 3 1 1
1 1 2 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 2 1 1
1 1 2 1 1
1 1 2 1
1 1 1 1
1 2 1 1
1 3 1
2 2 9
16
1 1
1
1 6
1 3 3
1 2 2 1
1 1 1
2 2 1
1 2 2 1
4 2 1
5 2 1
3 2 1
3 1
1
1 1
16