#P1642. Stacking Cubes
Stacking Cubes
#P1642. 堆叠立方体
描述
考虑以下由正整数组成的模式:
请注意,每一行均左对齐,且长度不超过前一行。此外,每行从左到右读取时元素非递增,每列从上到下读取时元素也非递增。我们称这种模式为堆叠模式(SP),因为它可以按以下方式表示在角落堆叠立方体的情况:若将最顶层行和最左列紧靠墙壁放置,则SP给出俯视视角下垂直堆叠的立方体数量。上述SP对应的角落堆叠如下:
我们将紧靠最顶层行的墙称为右墙,紧靠最左列的墙称为左墙。以下是另一个SP及其对应的角落堆叠:
请注意,若旋转角落堆叠使左墙变为地面、地面变为右墙,仍为角落堆叠(称为左旋转)。类似地,若旋转使右墙变为地面、地面变为左墙,也仍为角落堆叠(称为右旋转)。因此,上述第一个SP的左旋转和右旋转对应的SP如下:
你应验证第二个示例SP的左右旋转结果与原SP相同。
输入
本题包含多个测试用例。每个测试用例包含一个正整数,表示后续SP的行数(表示输入结束)。接下来是SP的各行,每行元素以空格分隔,以尾随的作为结束(该不属于实际输入数据,且每行至少有一个立方体)。模式中的每个元素均为不超过的正整数,每行元素不超过个。
输出
对每个输入SP,应按顺序生成左旋转和右旋转对应的两个堆叠模式。SP的行左对齐,元素以空格分隔。左旋转与右旋转结果之间用一个空行分隔,不同测试用例的输出之间用两个空行分隔。
输入数据 1
3
3 3 1 0
3 1 0
2 0
6
6 5 5 4 3 3 0
6 4 3 3 1 0
6 4 3 1 1 0
4 2 2 1 0
3 1 1 0
1 1 1 0
0
输出数据 1
3 2 1
2 1 1
2 1
3 3 2
2 1 1
1
6 5 5 4 3 3
6 4 3 3 1
6 4 3 1 1
4 2 2 1
3 1 1
1 1 1
6 5 5 4 3 3
6 4 3 3 1
6 4 3 1 1
4 2 2 1
3 1 1
1 1 1
来源
2000年北美中东部地区赛