#B3782. [语言月赛202306] 纸条

[语言月赛202306] 纸条

题目描述

zyl 桌上有 nn 张纸条(编号 1n1\sim n),他要把这些纸条按被写下的时间的前后顺序排好,但是纸条上不会有日期,zyl 需要自己判断。

zyl 可以根据纸条内容的连贯性来确定紧跟在一张纸条之后纸条有哪些。同时,他可以通过纸条的破损程度判断内容不连贯的纸条的时间先后顺序。显然,对于一段连贯内容的最后一张纸条,紧跟在它后面的纸条只能通过破损程度来判断。

现在,你会收到按以下规则给出的,每张纸条的信息:

首先,你会得知在这一段连贯内容中紧跟在这张纸条后面的纸条的数量 mm

其次,按照时间前后依次告诉你这些纸条的编号。

如果没有「连贯内容中紧跟在后面的纸条」(即在连贯内容的最后一张,m=0m = 0),则会按照破损程度给出紧跟它的下一张纸条的编号,如果没有「按照破损程度紧跟它的下一张纸条」,你会得到一个 1-1 信号。

如果对于这一部分理解有困难,可以参照「输入格式」及「样例组」进行理解。

请你帮助 zyl 将纸条排序,并将这 nn 张纸条按时间顺序排序后的编号输出。

输入格式

输入共 n+1n+1 行。

第一行一个整数 nn,表示纸条的张数。

2n+12\sim n+1 行,第 i+1i+1 行具体内容如下:
第一个整数 mm,表示在连贯内容内 ii 号纸条之后有多少张纸条。

  • 如果 m>0m>0,则接下来 mm 个整数,表示按照时间前后紧跟在 ii 号纸条后的纸条编号。
  • 如果 m=0m = 0,接下来一个整数,表示按照纸条的破损程度,紧跟在 ii 号纸条后面的纸条编号。如果其后没有纸条,则该整数为 1-1

输出格式

输出共一行 nn 个整数,表示按时间先后排好序后纸条的编号。

5
1 3
2 1 3
0 5
0 -1
1 4
2 1 3 5 4

提示

样例 1 解释

纸条 2,1,32,1,3 是内容连贯的纸条,纸条 5,45,4 是另一组内容连贯的纸条。

数据规模与约定

对于 20%20\% 的数据,n5n\leq 5
对于 100%100\% 的数据,0m<n2×1030\leq m<n\leq 2\times10^{3}