思路:
代码:
#include <iostream>
#include <cstring>
using namespace std;
const int maxn = 1005;
int A,B,C;
int length , height;
char mp[maxn][maxn];
int main(){
int T;cin>>T;
while(T--){
cin>>A>>B>>C;
length = 2*A + 1 + 2*B;
height = 2*C + 1 + 2*B;
memset(mp , '.' , sizeof(mp));
for(int i=0;i<=B;i++){
int row = 2*i + 1;
int line = row;
mp[line][row] = '+';
for(int j=1;j<=C;j++){
line += 2;
mp[line][row] = '+';
mp[line - 1][row] = '|';
}
line = row ;
for(int j=1;j<=A;j++){
row += 2;
mp[line][row] = '+';
mp[line][row - 1] = '-';
}
}
for(int i=1;i<=C;i++){
int line = 2*B + 1 + 2*i;
int row = 2*B + 1;
for(int j=1;j<=A;j++){
row += 2;
mp[line][row] = '+';
mp[line][row - 1] = '-';
}
}
for(int i=1;i<=B;i++){
int line = 2*i;
int row = line;
for(int j=0;j<=C;j++){
mp[line + 2*j][row] = '\\';
}
for(int j=0;j<=A;j++){
mp[line][row + 2*j] = '\\';
}
}
for(int i=1;i<=C;i++){
int line = 2*B + 2*i;
int row = 2*B + 1;
for(int j=1;j<=A;j++){
row += 2;
mp[line][row] = '|';
}
}
for(int i=1;i<=height;i++){
for(int j=1;j<=length;j++)
cout<<mp[i][j];
cout<<endl;
}
}
return 0;
}