由于牛客的题复制过来有格式问题,所以我这里放下原题截图,需要测试的同志们也可以自行去牛客看原题测试,(¬‿¬);
大部分说明请看代码,上面有张立体转平面图,我会尽量写详细,有问题或者还需优化的地方,还请大佬们指教!!༼ つ ◕_◕ ༽つ
#include<cstdio>
const int maxn=1005;
int a[maxn][maxn]={0};
int b[maxn][maxn]={0};
int c[maxn][maxn]={0};
//将立体图平面化,分为y-x y-z 和z-x 三个坐标
void Printf(int a)
{
if(a)
printf("x");
else
printf(".");
}//判断输出x还是.的函数
int main()
{
int X,Y,Z;
int x,y,z,n;
scanf("%d%d%d%d",&X,&Y,&Z,&n);
for(int i=0;i<n;i++)
{
scanf("%d%d%d",&x,&y,&z);
a[y][x]=1;
b[y][z]=1;
c[z][x]=1;
//边输入边存入3个平面坐标的信息
}
while(Y)
{
for(int i=1;i<=X;i++)//从 Y轴开始遍历x轴上是否有立方体
Printf(a[Y][i]);
printf(" ");
for(int i=1;i<=Z;i++)//从 Y轴开始遍历Z轴上是否有立方体
Printf(b[Y][i]);
printf("\n");
Y--;
}
printf("\n");
//Y-X 与 Y-Z 轴遍历完成
//由于在俯视图中Z轴是倒立的,所以先把Z轴改正
int ZZ=Z+1;
while(Z)
{
for(int i=1;i<=X;i++)
Printf(c[ZZ-Z][i]);
Z--;
printf("\n");
}
return 0;
}