#include<iostream>
using namespace std;
char cube[6][8]={"..+---+",
"./ /|",
"+---+ |",
"| | +",
"| |/.",
"+---+.."};
char map[500][500];
void draw(int x,int y);
int main(){
int m,n;
cin>>m>>n;
int mx=0;
int my=4*n+2*m+1;
int** num=new int*[m];
for(int i=0;i<n;i++){
int* temp=new int[n]();
num[i]=temp;
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>num[i][j];
int temp=(m-1-i)*2+3*num[i][j]+3;
mx=mx>temp?mx:temp;
}
}
for(int i=0;i<mx;i++){
for(int j=0;j<my;j++) map[i][j]='.';
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
for(int k=0;k<num[i][j];k++){
draw(mx-1-2*(m-1-i)-3*k,2*(m-1-i)+4*j);
}
}
}
for(int i=0;i<mx;i++){
for(int j=0;j<my;j++) cout<<map[i][j];
cout<<endl;
}
}
void draw(int x,int y){
for(int i=0;i<6;i++){
for(int j=0;j<7;j++){
if(cube[5-i][j]!='.') map[x-i][y+j]=cube[5-i][j];
}
}
}
数据点9返回RE 自己试了一些数据 没找到问题