AT_abc437_e [ABC437E] Sort Arrays
题目描述
有 $N + 1$ 个序列 $A_0,A_1,\ldots,A_N$。定义 $A_i$ 如下:
- $A_0$ 是空序列。
- $A_i (1 \le i \le N)$ 是在序列 $A_{x_i} (0 \le x_i < i)$ 末尾追加一个整数 $y_i$ 得到的序列。
请找出 $(1,2,\ldots,N)$ 的一个排列 $P = (P_1,P_2,\ldots,P_N)$,满足以下条件:
- 对于任意 $i = 1,2,\ldots,N - 1$,满足以下之一:
- $A_{P_i}$ 在字典序上小于 $A_{P_{i+1}}$。
- $A_{P_i} = A_{P_{i+1}}$ 且 $P_i \lt P_{i+1}$。
:::info[什么是序列的字典序?]
序列 $S = (S_1,S_2,\ldots,S_{|S|})$ 在字典序上**小于**序列 $T = (T_1,T_2,\ldots,T_{|T|})$,当且仅当满足以下两条之一。这里 $|S|$ 和 $|T|$ 分别是 $S$ 和 $T$ 的长度。
1. $|S| \lt |T|$ 且 $(S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|})$。
2. 存在一个整数 $1 \le i \le \min \lbrace |S|, |T| \rbrace$,满足:
- $(S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})$。
- $S_i$ 数值上小于 $T_i$。
:::
输入格式
输入从标准输入读取,格式如下:
> $N$ $x_1$ $y_1$
>
> $x_2$ $y_2$
>
> $\vdots$
>
> $x_N$ $y_N$
输出格式
输出 $P_1, P_2, \ldots, P_N$,一行内用空格隔开。
说明/提示
### 样例解释 1
$A_1 = (2), A_2 = (1), A_3 = (1, 2), A_4 = (1)$,所以 $P=(2,4,3,1)$。
### 样例解释 2
$A_1 = A_2 = A_3 = A_4 = A_5 = (1)$。
### 约束条件
- $1\leq N\leq 3\times 10^5$;
- $0\leq x_i\lt i$;
- $1\leq y_i\leq 10^9$;
- 所有输入均为整数。