#P2330. Advanced ASCII Cubes

    ID: 1331 传统题 1000ms 256MiB 尝试: 3 已通过: 1 难度: 10 上传者: 标签>模拟计算几何坐标变换Northeastern Europe 2003Far-Eastern Subregion

Advanced ASCII Cubes

题目描述

桌面被划分为 N×MN \times M 的方格,每个方格上堆叠着若干立方体,形成塔状结构。给定矩阵 AA,其中 AijA_{ij} 表示第 ii 行第 jj 列方格上的立方体数量。要求用 ASCII 字符绘制这些立方体的三维视图,具体规则如下:

  1. 立方体表示

      +---+
     /   /|
    +---+ |
    |   | +
    |   |/
    +---+
    

    使用字符:'+' (ASCII 43)'-' (ASCII 45)'/' (ASCII 47)'|' (ASCII 124),背景用 '.' (ASCII 46) 填充。

  2. 视角规则

    • 第一行表示离观察者最远的立方体塔(从右向左观察),最后一行表示最近的塔。
    • 立方体按从后向前、从右向左的顺序堆叠。

输入格式

  • 第一行:NNMM1N,M,Aij501 \leq N, M, A_{ij} \leq 50)。
  • 接下来 N×MN \times M 个整数:按行优先顺序给出矩阵 AA

输出格式

  • 输出 ASCII 图形,要求:
    • 行数为最小能完整显示所有立方体的高度;
    • 每行长度为最小能完整显示所有立方体的宽度;
    • 每行用等长字符串表示,不足部分用 '.' 填充。

示例分析

输入数据 1

3 5
2 2 1 2 2
2 2 1 1 2
3 2 1 2 2

输出数据 1

......+---+---+...+---+---+
..+---+  /   /|../   /   /|
./   /|-+---+ |.+---+---+ |
+---+ |/   /| +-|  /   /| +
|   | +---+ |/+---+---+ |/|
|   |/   /| +/   /   /| + |
+---+---+ |/+---+---+ |/| +
|   |   | +-|   |   | + |/.
|   |   |/  |   |   |/| +..
+---+---+---+---+---+ |/...
|   |   |   |   |   | +....
|   |   |   |   |   |/.....
+---+---+---+---+---+......