AT_abc337_c [ABC337C] Lining Up 2
Description
[problemUrl]: https://atcoder.jp/contests/abc337/tasks/abc337_c
人 $ 1, $ 人 $ 2,\ldots, $ 人 $ N $ の $ 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 $ のすぐ後ろに並んでいる。
列に並んでいる人の番号を先頭から順番に出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A\ _\ 1 $ $ A\ _\ 2 $ $ \ldots $ $ A\ _\ N $
Output Format
人 $ s\ _\ 1, $ 人 $ s\ _\ 2,\ldots, $ 人 $ s\ _\ N $ がこの順に列に並んでいるとき、$ s\ _\ 1,s\ _\ 2,\ldots,s\ _\ N $ をこの順に空白を区切りとして出力せよ。
Explanation/Hint
### 制約
- $ 1\leq\ N\leq3\times10\ ^\ 5 $
- $ A\ _\ i=-1 $ もしくは $ 1\leq\ A\ _\ i\leq\ N\ (1\leq\ i\leq\ N) $
- 情報と矛盾しないような $ N $ 人の並び方がただ $ 1 $ 通り存在する
- 入力はすべて整数
### Sample Explanation 1
先頭から、人 $ 3, $ 人 $ 5, $ 人 $ 4, $ 人 $ 1, $ 人 $ 2, $ 人 $ 6 $ がこの順に列に並んでいるとき、与えられた情報と一致しています。 実際、 - 人 $ 1 $ は人 $ 4 $ のすぐ後ろに並んでいます。 - 人 $ 2 $ は人 $ 1 $ のすぐ後ろに並んでいます。 - 人 $ 3 $ は先頭に並んでいます。 - 人 $ 4 $ は人 $ 5 $ のすぐ後ろに並んでいます。 - 人 $ 5 $ は人 $ 3 $ のすぐ後ろに並んでいます。 - 人 $ 6 $ は人 $ 2 $ のすぐ後ろに並んでいます。 となり、与えられた情報と一致していることが確認できます。 よって、$ 3,5,4,1,2,6 $ をこの順に空白区切りで出力してください。