#P1415. Map of Ninja House
Map of Ninja House
描述
一份古老的文件记载,金泽市的忍者屋实际上是一座防御堡垒,设计得像迷宫一样。其房间通过隐藏的门以复杂的方式相连,任何入侵者都会迷失方向。每个房间至少有两扇门。
忍者屋可以用图来建模,如图1所示。圆圈代表房间,连接两个圆的线代表两房间之间的门。
我决定绘制一张地图,因为当时没有可用的地图。你的任务是根据我的探索记录帮助我绘制地图。
我从一个对外开放的入口开始探索。我所走的路径在图2中用带箭头的线示意性地表示。移动规则如下:
进入一个房间后,我首先打开最右边的门并移动到下一个房间。但如果下一个房间已经被访问过,我会关闭这扇门而不进入,然后打开下一个最右边的门,依此类推。当我检查完一个房间的所有门后,我会通过进入该房间的门返回。
我随身携带一个计数器来记录与第一个房间的距离。计数器的值在进入新房间时增加,返回时减少。在图2中,括号中的数字表示进入房间时的计数器值,即与第一个房间的距离。而不带括号的数字表示访问的顺序。
我记录了探索过程。每次打开一扇门时,根据以下规则记录一个数字:
- 如果门的另一侧是一个新房间,我记录该房间的门数,这是一个正数。
- 如果是一个已访问的房间,我记录与第一个房间的距离减去当前房间与第一个房间的距离,这是一个负数。
在图2的示例中,第一个房间有三扇门连接其他房间,因此我最初记录。然后当我移动到第二、第三和第四个房间时,它们都有三扇门,我将追加到记录中。当我跳过从第四个房间到第一个房间的入口时,距离差会被追加,依此类推。因此,当我完成探索时,记录是一个数字序列。
金泽市有几十座忍者屋。对于每个忍者屋的给定数字序列,你需要绘制其对应的图。
输入
输入的第一行是一个整数,表示我探索过的忍者屋的记录数量。可以假设小于。接下来的条记录是每次探索记录的数字序列,以作为结束符。每条记录由一行或多行组成,每行长度小于字符。每个数字由空格或换行符分隔。可以假设每个忍者屋的房间数小于,每个房间的门数小于。
输出
对于每个有个房间的忍者屋,输出应包含行。每行中的第行应如下所示:
... ,
其中,...,是与房间相邻的房间,是房间的门数。数字之间用一个空格分隔。房间按访问顺序从开始编号。,,...,应按升序排列。注意,房间可能通过多扇门连接到另一个房间。在这种情况下,该房间编号应在,...,中出现多次。
输入数据 1
输出数据 1
来源
Japan 2002 Kanazawa