A15 - Compression 解説

実行時間制限: 2 sec / メモリ制限: 1024 MB

配点: 10001000

問題文

配列 A=[A1,A2,,AN]A = [A_1, A_2, \cdots, A_N] が与えられます。大小関係を崩さないように、配列をできるだけ圧縮してください。

ここで圧縮とは、以下の条件をすべて満たす配列 B=[B1,B2,,BN]B = [B_1, B_2, \cdots, B_N] を求める操作です。なお、このような配列 BB は 1 通りに決まります。

  • 条件1 B1,B2,,BNB_1, B_2, \cdots, B_N は 1 以上の整数である。
  • 条件2 Ai<AjA_i < A_j であるような組 (i,j)(i, j) については、Bi<BjB_i < B_j である。
  • 条件3 Ai=AjA_i = A_j であるような組 (i,j)(i, j) については、Bi=BjB_i = B_j である。
  • 条件4 Ai>AjA_i > A_j であるような組 (i,j)(i, j) については、Bi>BjB_i > B_j である。
  • 条件5 条件 1~4 を満たす中で、配列 BB の最大値をできるだけ小さくする。

制約

  • 1N1000001 \leq N \leq 100\,000
  • 1Ai1091 \leq A_i \leq 10^9

入力

入力は以下の形式で標準入力から与えられます。

NN
A1A_1 A2A_2 \cdots ANA_N

出力

整数 B1,B2,,BNB_1, B_2, \cdots, B_N を空白区切りで出力してください。


入力例 1 Copy

Copy
5
46 80 11 77 46

出力例 1 Copy

Copy
2 4 1 3 2

A=[46,80,11,77,46]A = [46, 80, 11, 77, 46] の大小関係を崩さずに圧縮すると、B=[2,4,1,3,2]B = [2, 4, 1, 3, 2] になります。



2022-11-07 (月)
18:21:14 +00:00