把每个小方块“照相”三次就行:正面看一次、左边看一次、上面看一次;某个位置只要被任何方块挡到,就记成 x。
最后按题目给的方向把三张“照片”打印出来(前两张并排,中间空一行,再打俯视图)就过了。
void solve(){
int X,Y,Z,N;cin>>X>>Y>>Z>>N;
vs a(Y,string(X,'.')),b(Y,string(Z,'.')),c(Z,string(X,'.'));
for(int i=0;i<N;++i){
int x,y,z;cin>>x>>y>>z;
a[Y-y][x-1]='x';
b[Y-y][z-1]='x';
c[z-1][x-1]='x';
}
for(int i=0;i<Y;++i)cout<<a[i]<<" "<<b[i]<<endl;
cout<<endl;
for(int i=0;i<Z;++i)cout<<c[i]<<endl;
}

京公网安备 11010502036488号