#abc378c. [ABC378] Repeating

0

[ABC378] Repeating

问题陈述

给定长度为 NN 的正整数序列 A=(A1,A2,…,AN)A = (A_1, A_2, \dots, A_N)。求定义如下的长度为 NN 的序列 B=(B1,B2,…,BN)B = (B_1, B_2, \dots, B_N)。

  • 对于 i=1,2,…,Ni = 1, 2, \dots, N,BiB_i 定义如下:令 BiB_i 为在 ii 之前最近出现的等于 AiA_i 的元素的位置。如果这样的位置不存在,则令 Bi=−1B_i = -1。更精确地说,如果存在正整数 jj 使得 Ai=AjA_i = A_j 且 j<ij < i,则令 BiB_i 为满足条件的最大 jj。如果不存在这样的 jj,则令 Bi=−1B_i = -1。

  • 令 BiB_i 为在 ii 之前最近出现的等于 AiA_i 的元素的位置。如果这样的位置不存在,则令 Bi=−1B_i = -1。更精确地说,如果存在正整数 jj 使得 Ai=AjA_i = A_j 且 j<ij < i,则令 BiB_i 为满足条件的最大 jj。如果不存在这样的 jj,则令 Bi=−1B_i = -1。

约束

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5

  • 1≤Ai≤1091 \leq A_i \leq 10^9

  • 所有输入值都是整数。

输入

输入从标准输入按以下格式给出:

NN A1A2…ANA_1 A_2 \dots A_N

输出

将 BB 的元素在一行中输出,用空格分隔。

样例输入 1

5
1 2 1 1 3

样例输出 1

-1 -1 1 3 -1
  • i=1i = 1:在 A1=1A_1 = 1 之前没有 11,所以 B1=−1B_1 = -1。

  • i=2i = 2:在 A2=2A_2 = 2 之前没有 22,所以 B2=−1B_2 = -1。

  • i=3i = 3:在 A3=1A_3 = 1 之前最近出现的 11 是 A1A_1,所以 B3=1B_3 = 1。

  • i=4i = 4:在 A4=1A_4 = 1 之前最近出现的 11 是 A3A_3,所以 B4=3B_4 = 3。

  • i=5i = 5:在 A5=3A_5 = 3 之前没有 33,所以 B5=−1B_5 = -1。

样例输入 2

4
1 1000000000 1000000000 1

样例输出 2

-1 -1 2 1