P15470 [ICPC 2024 WF] Kindergarten 幼儿园

题目背景

2s,2048 MB 翻译来源:loj #6977. [「ICPC World Finals 2024」幼儿园](https://loj.ac/p/6977)。

题目描述

带着一群幼儿园小朋友去天文馆可不是件容易的事。你非常希望能这样做,让每个孩子都有机会进入有巨大望远镜的房间,亲眼看看木星。然而,现在你想起了其他看护者讲过的故事——孩子们可能会行为不当,在望远镜房间里留下一些令人头疼的惊喜,让后面的孩子遭殃。你非常希望避免这种情况发生。 你对你小组里的孩子们非常了解。每个孩子都会嫉妒另一个比他们酷的孩子,如果他们知道自己嫉妒的对象会在他们之后——不一定是紧接着之后,只是稍后某个时间——进入望远镜房间,他们可能会在房间里捣乱。你本以为这会很简单:班里最酷的孩子没有嫉妒的对象,所以她可以第一个进去,然后其他孩子按照酷的程度依次进入。然而,你刚刚得知最酷的孩子是个例外——她并不是嫉妒比自己更酷的人,而是嫉妒组里某个随机的其他孩子。这听起来简直是一场灾难! 幸运的是,你还知道每个孩子都有一个他们非常非常喜欢的孩子。所以,每当一个孩子在望远镜房间里想要搞恶作剧时,如果他们知道自己喜欢的孩子会在他们之后、但在他们嫉妒的孩子之前进入房间,他们就会克制自己不去捣乱。形式化地讲,如果孩子 $A$ 嫉妒孩子 $B$,并且非常喜欢孩子 $C$,那么当 $B$ 会在 $A$ 之后进入望远镜房间,而 $C$ 会在 $A$ 之前或 $B$ 之后进入时,$A$ 就有可能捣乱并留下惊喜。 你能找出一个让孩子们进入望远镜房间的顺序,确保不会发生任何惊喜吗?

输入格式

第一行包含一个整数 $n$ $(3 \leq n \leq 200000)$,表示你小组里的孩子数量。孩子们按照酷的程度从高到低编号为 $1$ 到 $n$。接下来的 $n$ 行,每行描述一个孩子。第 $i$ 行包含两个整数:$j_{i}$,表示第 $i$ 个孩子嫉妒的孩子编号;$l_{i}$,表示第 $i$ 个孩子非常非常喜欢的孩子编号($1 \leq j_{i}, l_{i} \leq n$,$j_{i} \neq l_{i}$,$j_{i} \neq i$,$l_{i} \neq i$,并且对于除 $1$ 之外的所有 $i$,$j_{i} < i$)。

输出格式

输出一行包含 $n$ 个整数,表示孩子们进入望远镜房间的顺序。如果有多种排序方式,输出任意一种即可。如果不存在可行的顺序,则输出 `impossible`。