#P9660. 立方体
立方体
题目描述
Source:CF1320F。
有一条狗在做梦。
她梦见了一个长方体,这个长方体具有极其美丽的颜色,并且构造十分特殊。正在她欣赏这个长方体的时候,她忽然醒了。她依稀记得自己从长方体的上下左右前后六个面观察过长方体。她告诉了你从六个面看到的图案,同时她还告诉你长方体有如下性质:
- 从前面看的时候,长方体长 ,宽 ,高 。并且长方体由 个 的小立方体无缝拼接而成。
- 每个小立方体或者有自己的颜色(用一个在 内的整数表示),或者是透明的(用 表示)。
- 从一个方向观察时,观察到的是所有该方向上的第一个非透明方块的颜色构成的图案。特殊的,如果该方向上有一排方块全部透明,则观察到的格子上的图案用 表示。
试着帮她还原这个长方体,或者告诉她她记错了,即不存在这样的长方体。
输入格式
第一行三个整数 。
然后六个矩阵,表示从六面看到的图案。为了方便表述,构造立体坐标系,如上图所示。其中 为右、下、前三面的公共点所在的小立方体的中心。长方体的 轴范围 , 轴 , 轴 。
第一个矩阵是 的矩阵,表示从右面看到的图案。第 行 列表示 所在的格子向 方向看到的图案。
第二个矩阵是 的矩阵,表示从左面看到的图案。第 行 列表示 所在的格子向 方向看到的图案。
第三个矩阵是 的矩阵,表示从前面看到的图案。第 行 列表示 所在的格子向 方向看到的图案。
第四个矩阵是 的矩阵,表示从后面看到的图案。第 行 列表示 所在的格子向 方向看到的图案。
第五个矩阵是 的矩阵,表示从下面看到的图案。第 行 列表示 所在的格子向 方向看到的图案。
第六个矩阵是 的矩阵,表示从上面看到的图案。第 行 列表示 所在的格子向 方向看到的图案。
上述 的矩阵均表示输入时矩阵有 行,每行 个数,一个空格分隔。
请注意输入的矩阵反人类直觉。
输出格式
从 到 输出每个点的颜色( 表示透明)。相邻两个数之间使用空格分隔。按照 ,, 轴依次从小到大的顺序输出,即先输出 点对应的立方体的颜色,再输出 点对应立方体的颜色,然后是 $(1,1,3),(1,1,4),\ldots,(1,1,k),(1,2,1),\ldots,(1,2,k),\ldots,(1,m,k),(2,1,1),(2,1,2),\ldots,(2,m,k),\ldots,(n,m,k)$ 这些点对应的立方体颜色。
如有多解,输出任一解即可,如无解,输出 。
样例
1 1 1
1
1
1
1
1
1
1
提示
附加文件中提供一个 view.cpp
,其先读入三个数表示 ,随后读入 个数表示构造方案,随后其会输出六个矩阵,表示从六面看到的图案,具体输出格式同题面中的输入格式。
注意即使输入错误的构造方案或输入无解方案其也会输出。
数据范围
- 对于 的数据,。
- 对于 的数据,。
- 对于 的数据,。
- 对于另外 的数据,,且满足如果存在合法方案,则 $\exist C\not=0:\forall 1\le x\le n,1\le y\le m:(x,y,1)=(x,y,3)=C$。
- 对于 的数据,。读入的数满足在 之间。