logo AlgoBeat OnlineJudge
登录 注册

#215147. 「IXOI R1」柚社子

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

NATO 是柚社子的忠实粉丝。

寒假要来了,他计划在寒假玩完一系列柚社子的游戏。这些游戏构成若干有根树形结构。


注:本题输入输出量较大,请选择合适的输入输出方式。

给出一个由 个点构成的有根树森林,第 )个点在有根树上的父亲是 (若 则表示他是某棵树的根)。

对于每棵树,都会给出一对参数 ,其中 是这棵树的根。

现在你要选取若干个点,并将点的编号组成一个序列,定义一个合法的序列为:

  • 对于每个满足 的点 ,以他为根的树中选取的点的个数在 之间。
  • 对于每一个被选取的点,如果他是根或他的所有祖先中没有点被选,那么没有限制;否则至少有一个他的祖先在序列上的位置在他后面(若这个点在序列的位置为 ,则存在一个他的祖先在序列的位置为 ,其中 )。

求所有合法序列中字典序最小的那个。

输入格式

第一行一个正整数 ,表示点数。

接下来 行,第 )行一至三个整数,第一个整数 ,表示点 在森林上的父亲。若 ,后面紧跟两个由空格隔开的正整数 ,其意义已在题目描述中给出。

输出格式

输出两行。

第一行一个整数 ,表示字典序最小的序列长度。

第二行 个由空格隔开的整数,描述字典序最小的序列。

可以证明在题目的限制下,一定是存在至少一个合法序列的。

样例

样例输入 1

10
0 2 2
1
10
6
3
0 1 2
5
1
3
1

样例输出 1

3
2 1 4 

数据范围与提示

样例解释

最小的满足条件的字典序是 ,长度为 ,可以证明没有字典序更小的方案。

数据范围

本题采用捆绑测试。

子任务编号 特殊性质 分值
A
B

特殊性质 A:保证每棵树是一个菊花,即每颗树至多有一个点度数超过 ,且所有度数大于 的点 均满足

特殊性质 B:保证

对于所有数据,保证:

,保证对于任意一颗树的 满足 ,其中 指对应树的结点数,保证输入的图是一个森林。