记录编号 576939 评测结果 AAA
题目名称 Riddle Joker 最终得分 100
用户昵称 Gravatarムラサメ 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2022-10-19 07:26:33 内存使用 0.00 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int t,m,n;
int tmp[51][51];
char a[610][610];
void work(int x,int y){
	a[1+x][1+y]=a[1+x][5+y]=a[4+x][5+y]=a[4+x][1+y]='/';
	a[x][2+y]=a[x][6+y]=a[2+x][y]=a[2+x][4+y]=a[3+x][6+y]=a[5+x][y]=a[5+x][4+y]=a[3+x][2+y]='.';
	a[1+x][6+y]=a[2+x][6+y]=a[3+x][y]=a[3+x][4+y]=a[4+x][y]=a[4+x][4+y]=a[1+x][2+y]='|';
	a[x][3+y]=a[x][4+y]=a[x][5+y]=a[2+x][1+y]=a[2+x][2+y]=a[2+x][3+y]=a[5+x][1+y]=a[5+x][2+y]=a[5+x][3+y]=a[3+x][3+y]=a[3+x][5+y]='-';
	if(a[1+x][3+y]=='+')a[1+x][3+y]=' ';
	if(a[1+x][4+y]=='+')a[1+x][4+y]=' ';
	if(a[2+x][5+y]=='+')a[2+x][5+y]=' ';
	if(a[3+x][1+y]=='+')a[3+x][1+y]=' ';
	if(a[4+x][2+y]=='+')a[4+x][2+y]=' ';
	if(a[4+x][3+y]=='+')a[4+x][3+y]=' ';
}
int main(){
	freopen("murasame_riddlejoker.in","r",stdin);
	freopen("murasame_riddlejoker.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	memset(a,(char)43,sizeof(a));
	cin>>t;
	char z;
	while(t--){
		cin>>z;
		cin>>m>>n;
		if(z=='Y'){
			for(int i=1;i<=m;i++){
				for(int j=1;j<=n;j++){
					tmp[i][j]=1;
				}
			}
			int w;
			for(int i=1;i<=m;i++){
				cin>>w;
				for(int j=1;j<=n;j++){
					tmp[i][j]=w;
				}
			}
			for(int i=1;i<=n;i++){
				cin>>w;
				for(int j=1;j<=m;j++){
					tmp[j][i]=min(tmp[j][i],w);
				}
			}
			int xx=0,yy,zz;
			for(int i=1;i<=m;i++){
				zz=0;
				for(int j=1;j<=n;j++){
					zz=max(zz,tmp[i][j]);
				}
				xx=max(xx,2*(m-i+1)+3*zz+1);
			}
			yy=2*m+4*n+1;
			for(int i=1;i<=m;i++){
				for(int j=1;j<=n;j++){
					for(int k=1;k<=tmp[i][j];k++){
						work(xx-2*m+2*i-3*k-2,2*m-2*i+4*j-3);
					}
				}
			}
			for(int i=1;i<=xx;i++){
				for(int j=1;j<=yy;j++){
					cout<<a[i][j];
				}
				cout<<endl;
			}
		}
		else{
			int xx=0,yy,zz;
			for(int i=1;i<=m;i++){
				zz=0;
				for(int j=1;j<=n;j++){
					cin>>tmp[i][j];
					zz=max(zz,tmp[i][j]);
				}
				xx=max(xx,2*(m-i+1)+3*zz+1);
			}
			yy=2*m+4*n+1;
			for(int i=1;i<=m;i++){
				for(int j=1;j<=n;j++){
					for(int k=1;k<=tmp[i][j];k++){
						work(xx-2*m+2*i-3*k-2,2*m-2*i+4*j-3);
					}
				}
			}
			for(int i=1;i<=xx;i++){
				for(int j=1;j<=yy;j++){
					cout<<a[i][j];
				}
				cout<<endl;
			}
		}
		cout<<endl;
	}
	return 0; 
}