고급 ASCII 큐브

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

탁자 표면이 N×MN \times M 개의 정사각형 칸으로 나뉘어 있습니다. 일부 칸 위에는 정육면체(큐브)가 위로 차곡차곡 쌓여 탑을 이룹니다. 각 칸 위에 쌓인 큐브의 개수는 행렬 AA로 주어집니다.

프로그램은 탁자의 모습을 ASCII 그래픽으로 그려야 하며, 각 큐브는 다음과 같이 표현합니다.

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

(사용하는 문자는 +, -, /, | 이며 ASCII 코드는 각각 43, 45, 47, 124입니다.) 배경으로는 점 . (ASCII 46)을 사용합니다.

입력

입력에는 정수 NNMM이 주어지고, 이어서 행렬 AA가 한 행씩 주어집니다. 첫 번째 행은 보는 사람에게서 가장 먼 큐브 탑들을 왼쪽에서 오른쪽 순서로 나타내고, 마지막 행은 보는 사람에게 가장 가까운 탑들을 나타냅니다.

출력

모든 큐브를 보여주는 데 필요한 최소한의 줄 수로 탁자의 모습을 출력합니다. 각 줄의 길이는 모두 같아야 하며, 이는 모든 큐브를 보여주는 데 필요한 최소 너비와 같습니다.

제한

  • 1N,M,Aij401 \le N, M, A_{ij} \le 40