#P5802. [SEERC 2019] Projection
[SEERC 2019] Projection
题目描述
你是一个 TensorFlow 的死忠粉,因此,你想要从两个投影图形来还原出 TensorFlow 的图标。
假定你有一个 3D 空间,尺寸为 ,以及两个投影图形(一个 的矩阵和一个 的矩阵,矩阵里的元素都为 或 )。你需要计算出一些 的小正方体的集合,使得这些正方体放入 3D 空间后构成的立体的正投影(光照立体正面在立体后侧形成的投影)和右投影(光照立体左面在立体右侧形成的投影)与题目给定的投影图形一致。如果无解,输出 。如果有解,你需要计算出两个满足条件的集合,一个包含的小正方体数量最少,另一个最多。假定正方体的摆放不受重力影响(即小正方体在 3D 空间中可以随意放置,悬空也不需要支撑)。规定矩阵中的 代表有阴影遮住, 代表无阴影遮住。
如果有多解,你需要输出字典序最小的解。一个解 字典序比解 小,当且仅当对于两个解中第一对不相同的数字, 中的数字小于 中的。
例如,解 比解 字典序更小。
输入格式
第一行包含三个整数 ,代表 3D 空间的尺寸。
接下来的 行中,每一行包含 个字符 或 ,其中 代表有阴影遮住, 代表无阴影遮住。这 个字符描述了一个正投影。
接下来的 行中,每一行包含 个字符,格式同上。这 个字符描述了一个右投影。
输出格式
如果无解,仅在第一行输出 即可。
如果有解,第一行输出一个整数 ,代表满足题目要求的解中小正方体个数的最大值。
接下来 行中每行输出三个整数 ,代表小正方体最多的解中字典序最小的解的 个小正方体的放置位置。
接下来一行输出一个整数 ,代表满足题目要求的解中小正方体个数的最小值。
接下来 行中每行输出三个整数 ,代表小正方体最少的解中字典序最小的解的 个小正方体的放置位置。
提示
一个放置在 的小正方体会在正投影的 位置产生一个有阴影遮住的区域,并在右投影的 位置产生一个有阴影遮住的区域。
坐标从 开始编号。