链接(已将题目和数据传到洛谷上),注:原题是内部题,且无题面。 代码:```cpp #include<bits/stdc++.h> using namespace std; int n,m,x=1,y,a,b[105],c,d,e,f,len,lzn[105][105],l[105][105],r[105][105]; char ch[105],sh[105],zh[105][105][105]; int main(){ //freopen("table.in","r",stdin); //freopen("table.out","w",stdout); cin>>n>>m>>ch; for(int i=1;i<=n;i++){ cin>>sh; len=strlen(sh); for(int j=0;j<len;j++){ if(sh[j]!=','){ zh[i][x][y]=sh[j]; y++; } else{ lzn[i][x]=y; x++; y=0; } } lzn[i][x]=y; x=1; y=0; } for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ b[i]=max(b[i],lzn[j][i]); } d+=b[i]; } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(ch[j-1]=='L'){ r[i][j]=b[j]-lzn[i][j]; } if(ch[j-1]=='R'){ l[i][j]=b[j]-lzn[i][j]; } if(ch[j-1]=='C'){ l[i][j]=(b[j]-lzn[i][j])/2; r[i][j]=(b[j]-lzn[i][j]+1)/2; } } } c=n*2+1; d+=m+1; for(int i=1;i<=c;i++){ e=1; f=0; if(i%2==1){ cout<<"+"; for(int j=1;j<=m;j++){ for(int k=1;k<=b[j];k++){ cout<<"-"; } cout<<"+"; } cout<<endl; } else{ a=i/2; cout<<"|"; for(int j=1;j<=m;j++){ for(int k=1;k<=l[a][j];k++){ cout<<" "; } for(int k=0;k<lzn[a][j];k++){ cout<<zh[a][j][k]; } for(int k=1;k<=r[a][j];k++){ cout<<" "; } cout<<"|"; } cout<<endl; } } return 0; }