#codethanksfestival2018f. [code_thanks_festival_2018_f]Coins on the tree
[code_thanks_festival_2018_f]Coins on the tree
问题描述
高桥君在一棵由 个顶点组成的有根树上,使用 枚硬币进行恰好 次操作。
给定这棵树,其中顶点 的父节点是 ,根节点的 。
每次操作可以进行以下两种中的一种:
- 如果根节点没有硬币,则将一个硬币放在根节点上;
- 选择一个有硬币的顶点,并将硬币移动到它的一个空子节点上。
经过 次操作后,所有 枚硬币必须放置在树的某个位置。
将第一枚硬币放置在根节点,第二枚硬币放置在根节点,......,将第 枚硬币放置在根节点,则它们所在的顶点分别为 , , ..., 。
高桥君想知道在这些顶点 , , ..., 中,最小的字典序是哪一个。
请帮助高桥君求出这个顺序。
如果无法进行恰好 次操作或者无法将 枚硬币放置在树上,则输出 。
约束条件
- 仅存在一个 使得
- 连通图由边 构成一颗树
- 所有输入为整数
输入
输入从标准输入中获取,并具有以下格式。
...
输出
在进行了 次操作后,如果可以将所有 枚硬币放置在树上,则输出如下:
...
如果无法实现,则输出 。
示例 1
3 2 4
2 0 2
输出示例 1
1 3
通过以下操作,可以创建顺序为 的序列,并且无法创建比这更小的序列:
- 将第一枚硬币放置在顶点
- 将第一枚硬币从顶点 移动到顶点
- 将第二枚硬币放置在顶点
- 将第二枚硬币从顶点 移动到顶点
在上面的图像中,用红色表示第一枚硬币,用蓝色表示第二枚硬币。
示例 2
3 2 5
2 0 2
输出示例 2
-1
无法进行 次操作,因此输出 。