编程题
### 问题描述 小明是学校里有名的小说收藏家,大家想看小说的时候都选择直接向他借,但是因为借书的人实在太多,自己想看的书往往已经被别人借走,借书的对象就会从小明转变为上一位借这本书的同学。 某天小明在学校里闲逛的时候发现自己的其中一本小说正在被一位完全不认识的同学翻阅,他感觉非常惊讶,于是开始探索这本小说离开自己之后是如何到达每位同学手中的。 最终小明发现这本小说一共被 $N$ 位同学借阅过(包括小明自己,学生编号为 $1 \sim N$)。而小明对于其中 $T$ 位同学获取这本小说的方式很感兴趣,他想知道从他自己开始,这本小说先后被哪些同学借出,才最终到了这几位同学的地方。 注意: - 我们假设已经看过这本小说的同学不会再次从别人手中借阅这本小说。 - 如果存在编号为 $idx_1$ 的同学将书借给编号为 $idx_2$ 和 $idx_3$ 两位同学的情况,那么在求小说从小明到编号为 $idx_2$ 同学的借阅路径时,不考虑书籍到过 $idx_3$ 同学手中。 ### 输入格式 第一行包含两个整数 $N(1 \leq N \leq 1000),T(1 \leq T \leq N)$ ,分别表示一共有多少位同学,小说借出的次数以及对获取途径感兴趣的同学数量。 接下来 $N-1$ 行每行包含两个整数 $stu_1,stu_2$ ($1 \leq stu_1,stu_2 \leq N$),表示编号为 $stu_1$ 的同学将书借给了编号为 $stu_2$ 的同学。 最后 $T$ 行每行包含一个整数 $idx$ ($1 \leq idx \leq N$),对应一个询问,表示小明想知道小说是如何传到该编号同学手中的。 ### 输出格式 输出包含 $T$ 行,每行代表一条小说的借阅路径。路径的起点是小明的编号,终点是每条询问对应同学的编号,中间是相关同学按借阅顺序排列的编号,每个编号之间用空格隔开,规定行末没有多余空格。 ### 样例输入 ``` 10 4 1 2 2 3 3 5 3 6 4 8 2 4 2 9 9 10 9 7 4 10 7 2 ``` ### 样例输出 ``` 1 2 4 1 2 9 10 1 2 9 7 1 2 ```
查看答案
赣ICP备20007335号-2