B3782 [语言月赛202306] 纸条
题目描述
zyl 桌上有 $n$ 张纸条(编号 $1\sim n$),他要把这些纸条按被写下的时间的前后顺序排好,但是纸条上不会有日期,zyl 需要自己判断。
zyl 可以根据纸条内容的连贯性来确定**紧跟**在一张纸条之后纸条有哪些。同时,他可以通过纸条的破损程度判断内容不连贯的纸条的时间先后顺序。显然,对于一段连贯内容的最后一张纸条,紧跟在它后面的纸条只能通过破损程度来判断。
现在,你会收到按以下规则给出的,每张纸条的信息:
首先,你会得知在这一段连贯内容中紧跟在这张纸条后面的纸条的数量 $m$。
其次,按照时间前后依次告诉你这些纸条的编号。
如果没有「连贯内容中紧跟在后面的纸条」(即在连贯内容的最后一张,$m = 0$),则会按照破损程度给出紧跟它的下一张纸条的编号,如果没有「按照破损程度紧跟它的下一张纸条」,你会得到一个 $-1$ 信号。
**如果对于这一部分理解有困难,可以参照「输入格式」及「样例组」进行理解。**
请你帮助 zyl 将纸条排序,并将这 $n$ 张纸条按时间顺序排序后的编号输出。
输入格式
输入共 $n+1$ 行。
第一行一个整数 $n$,表示纸条的张数。
第 $2\sim n+1$ 行,第 $i+1$ 行具体内容如下:
第一个整数 $m$,表示在连贯内容内 $i$ 号纸条之后有多少张纸条。
- 如果 $m>0$,则接下来 $m$ 个整数,表示按照时间前后紧跟在 $i$ 号纸条后的纸条编号。
- 如果 $m = 0$,接下来一个整数,表示按照纸条的破损程度,紧跟在 $i$ 号纸条后面的纸条编号。如果其后没有纸条,则该整数为 $-1$。
输出格式
输出共一行 $n$ 个整数,表示按时间先后排好序后纸条的编号。
说明/提示
### 样例 1 解释
纸条 $2,1,3$ 是内容连贯的纸条,纸条 $5,4$ 是另一组内容连贯的纸条。
### 数据规模与约定
对于 $20\%$ 的数据,$n\leq 5$。
对于 $100\%$ 的数据,$0\leq m