Advanced ASCII Cubes
Time Limit: 1 Second Memory Limit: 32768 KB
The table surface is divided into N by M square cells. Some cubes are stacked one upon another over the cells, forming towers. For each cell the number of cubes stacked over it is given in the matrix A.
Your program must output the view of the table in ASCII graphics, where each cube is represented as shown below:
+---+ / /| +---+ | | | + | |/ +---+
(here the characters used are '+', '-', '/', '|', their ASCII codes are ASCII 43, 45, 47, 124)
The dot (ASCII 46) must be used as a background.
Constraints
1 <= N, M, Aij <= 60
Input
Input contains integers N M, followed by matrix A, row-by-row. The first row describes the cube tower furthest from the viewer, left to right, and the last row - nearest to the viewer.
Output
Output must contain a string representation of the table view, with minimal number of lines required to show all cubes. Each line must contain a string of equal length, which is the minimal width required to show all cubes.
This problem contains multiple test cases!
The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.
The output format consists of N output blocks. There is a blank line between
output blocks.
Sample Input
2 3 4 1 1 1 1 1 2 1 1 1 1 1 1 3 5 2 2 1 2 2 2 2 1 1 2 3 2 1 2 2
Sample Output
........+---+.......... ......+/ /|-+---+---+ ...../+---+ |/ / /| ....+-| | +---+---+ | .../ | |/ / /| + ..+---+---+---+---+ |/. ./ / / / /| +.. +---+---+---+---+ |/... | | | | | +.... | | | | |/..... +---+---+---+---+...... ......+---+---+...+---+---+ ..+---+ / /|../ / /| ./ /|-+---+ |.+---+---+ | +---+ |/ /| +-| / /| + | | +---+ |/+---+---+ |/| | |/ /| +/ / /| + | +---+---+ |/+---+---+ |/| + | | | +-| | | + |/. | | |/ | | |/| +.. +---+---+---+---+---+ |/... | | | | | | +.... | | | | | |/..... +---+---+---+---+---+......Submit
Source: Northeastern Europe 2003, Far-Eastern Subregion