AT_abc337_c [ABC337C] Lining Up 2

题目描述

有 $N$ 个人(编号为 $1, 2, \ldots, N$)排成一列。 排列的信息以长度为 $N$ 的数列 $A=(A_1, A_2, \ldots, A_N)$ 给出。 $A_i\ (1\leq i\leq N)$ 表示如下信息: - 当 $A_i = -1$ 时,第 $i$ 个人站在队列的最前面。 - 当 $A_i \neq -1$ 时,第 $i$ 个人站在第 $A_i$ 个人的正后方。 请输出队列中从前到后的人的编号。

输入格式

输入以如下格式从标准输入给出。 > $N$ $A_1$ $A_2$ $\ldots$ $A_N$

输出格式

若队列中从前到后依次为 $s_1, s_2, \ldots, s_N$ 号人,请按顺序用空格分隔输出 $s_1, s_2, \ldots, s_N$。

说明/提示

### 限制条件 - $1 \leq N \leq 3 \times 10^5$ - $A_i = -1$ 或 $1 \leq A_i \leq N\ (1 \leq i \leq N)$ - 存在且仅存在一种与给定信息不矛盾的排列方式 - 所有输入均为整数 ### 样例解释 1 从前到后,依次为第 $3$、第 $5$、第 $4$、第 $1$、第 $2$、第 $6$ 个人时,与给定信息一致。实际上: - 第 $1$ 个人站在第 $4$ 个人的正后方。 - 第 $2$ 个人站在第 $1$ 个人的正后方。 - 第 $3$ 个人站在队列最前面。 - 第 $4$ 个人站在第 $5$ 个人的正后方。 - 第 $5$ 个人站在第 $3$ 个人的正后方。 - 第 $6$ 个人站在第 $2$ 个人的正后方。 可以确认与给定信息一致。因此,请按顺序输出 $3, 5, 4, 1, 2, 6$,用空格分隔。 由 ChatGPT 4.1 翻译