A15 - Compression Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 1000

問題文

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

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

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

制約

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

入力

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

N
A_1 A_2 \cdots A_N

出力

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


入力例 1

5
46 80 11 77 46

出力例 1

2 4 1 3 2

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