atcoder#ARC125C. [ARC125C] LIS to Original Sequence

[ARC125C] LIS to Original Sequence

配点 : 600600

問題文

整数 NN と,長さ KK の単調増加な整数列 A=(A1,A2,,AK)A=(A_1,A_2,\cdots,A_K) が与えられます. 次の条件を満たす (1,2,,N)(1,2,\cdots,N) の順列 PP の中で,辞書順最小のものを求めてください.

  • AAPP の最長増加部分列(単調増加な部分列であって,長さが最大のもの)である. なお,PP は複数の最長増加部分列を持つことがあるが,そのうちの一つが AA に一致していればよい.

なお,問題の制約から,条件を満たす PP が必ず存在することが証明できます.

制約

  • 1KN2×1051 \leq K \leq N \leq 2 \times 10^5
  • 1A1<A2<<AKN1 \leq A_1 < A_2 < \cdots < A_K \leq N
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN KK

A1A_1 A2A_2 \cdots AKA_K

出力

答えを出力せよ.

3 2
2 3
2 1 3

PP の最長増加部分列が AA に一致するのは,P=(2,1,3),(2,3,1)P=(2,1,3),(2,3,1) のときです. このうち,辞書順最小の (2,1,3)(2,1,3) が答えになります.

5 1
4
5 4 3 2 1