#ABC337C. [ABC337C] 排队 2(Lining Up 2)

    ID: 2725 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>ABC入门算法闯关STL与数据结构

[ABC337C] 排队 2(Lining Up 2)

题目描述

NN个人站成一排:第11个人、第 22 个人、...、第 NN 个人。

你被给定了一个长度为 NN 的序列来描述人A=(A  1,A  2,,A  N) A=(A\ _\ 1,A\ _\ 2,\ldots,A\ _\ N) 们的排列方式。Ai (1 i N) A_i\ (1\leq\ i\leq\ N) 表示以下信息:

  • 如果 Ai=1 A_ i=-1 ,第 ii 个人站在队伍的最前面;
  • 如果 Ai 1 A_ i\neq\ -1 ,第 ii个人站在第 AiA_i个人的正后方。

请按照从前到后的顺序输出队伍中人们的编号。

输入格式

输入将从标准输入中以下列格式给出:

N N

A  1 A\ _\ 1 A  2 A\ _\ 2 \ldots A  N A\ _\ N

输出格式

如果第 s1s_1 个人、第 s2s_2 个人、...、第 sNs_N个人按此顺序从前到后站在队伍中,请按此顺序输出s1,s2,,sNs_1,s_2, \dots,s_N,用空格分隔。

样例 #1

样例输入 #1

6
4 1 -1 5 3 2

样例输出 #1

3 5 4 1 2 6

样例 #2

样例输入 #2

10
-1 1 2 3 4 5 6 7 8 9

样例输出 #2

1 2 3 4 5 6 7 8 9 10

样例 #3

样例输入 #3

30
3 25 20 6 18 12 26 1 29 -1 21 17 23 9 8 30 10 15 22 27 4 13 5 11 16 24 28 2 19 7

样例输出 #3

10 17 12 6 4 21 11 24 26 7 30 16 25 2 28 27 20 3 1 8 15 18 5 23 13 22 19 29 9 14

提示

样例说明 1

如果第3个人、第5个人、第4个人、第1个人、第2个人和第6个人按此顺序从前到后站在队伍中,那么这种排列与给定的信息相符。 确实,可以看到:

  • 第1个人站在第4个人的正后方,
  • 第2个人站在第1个人的正后方,
  • 第3个人站在队伍的最前面,
  • 第4个人站在第5个人的正后方,
  • 第5个人站在第3个人的正后方,
  • 第6个人站在第2个人的正后方。

因此,按顺序输出3、5、4、1、2和6,用空格分隔。

数据范围

  • 1 N3×105 1\leq\ N\leq3\times10^ 5
  • Ai=1 A_i=-1 1 Ai N (1 i N) 1\leq\ A_i\leq\ N\ (1\leq\ i\leq\ N)
  • 存在唯一一种与给定信息一致的 NN个人的排列方式
  • 所有输入值都是整数。