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] になります。