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$; - 所有输入均为整数。