Problem 3266 --2008-4-立体图

3266: 2008-4-立体图

"
Time Limit $1$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $0$ 正确数量 $0$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签

小渊是个聪明的孩子,他经常会给周围的小朋友们讲些自己认为有趣的内容。最近,他准备给小朋友们讲解立体图,请你帮他画出立体图。

小渊有一块面积为   m*n 的矩形区域,上面有     m*n 个边长为               1 的格子,每个格子上堆了一些同样大小的积木(积木的长宽高都是                                              1),小渊想请你打印出这些格子的立体图。我们定义每个积木为如下格式,并且  不会做任何翻转旋转,只会严格以这一种形式摆放:

+---+

/   /|           高

+---+ |

|   | +

|   |/         宽

+---+


每个顶点用  1 个加号’ +’表示,长用 3 个” - “表示,宽用  1 个” / ”表示,高用两个” | ”表示。字符‘ +’‘ - ’‘/ ’‘ | ’的 ASCII  码分别为  43,45, 47,124。字符’ . ’( ASCII  码 46)需要作为背景输出,即立体图里的空白部分需要用’ . ’代替。立体图的画法如下面的规则:

若两块积木左右相邻,图示为:

..+---+---+

./   /   /|

+---+---+ |

|   |   | +

|   |   |/.

+---+---+..

若两块积木上下相邻,图示为:

..+---+

./   /|

+---+ |

|   | +

|   |/|

+---+ |

|   | +

|   |/.

+---+..

若两块积木前后相邻,图示为:

,.+---+

,/   /|

..+---+ |

./   /| +

+---+ |/.

|   | +..

|   |/,

+---   +,.

立体图中,定义位于第 (m,1) 的格子(即第  m 行第 1 列的格子)上面自底向上的第一块积木(即最下面的一块积木)的左下角顶点为整张图最左下角的点。

输入文件  drawing.in     第一行有用空格隔开的两个整数m和 n,表示有m*n 个格子( 1<=m, n<=50)。接下来的m行,是一个  m*n 的矩阵,每行有 n 个用空格隔开的整数,其中第 i 行第 j 列上的整数表示第 i  行第 j 列的格子上摞有多少个积木( 1<=每个格子上的积木数  <=100)。


输出文件  drawing.out     中包含题目要求的立体图,是一个 K 行 L 列的字符矩阵,其中       K 和 L 表示最少需要 K 行 L 列才能按规定输出立体图。

3 4
2 2 1 2
2 2 1 1
3 2 1 2
......+---+---+...+---+
..+---+  /	/|../	/|
./	/|-+---+ |.+---+ |
+---+ |/	/| +-|	| +
|	| +---+ |/+---+ |/|
|	|/	/| +/	/|-+ |
+---+---+ |/+---+ |/| +
|	|	| +-|	| + |/.
|	|	|/  |	|/| +..
+---+---+---+---+ |/...
|	|	|	|	| +....
|	|	|	|	|/.....
+---+---+---+---+......


推荐代码 查看3266 所有题解 上传题解视频得图灵币

本题记录 用 户(点击查看用户) 运行号(点击购买题解) 时 间
算法最快[$ $ms]
内存最少[$ $KB]
第一AC
第一挑战

赛题来源/所属竞赛 NOIP全国联赛普及组 N/A

竞赛编号 竞赛名称 竞赛时间 访问比赛