atcoder#ARC125C. [ARC125C] LIS to Original Sequence

[ARC125C] LIS to Original Sequence

题目描述

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

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

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

输入格式

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

N N K K A1 A_1 A2 A_2 \cdots AK A_K

输出格式

答えを出力せよ.

题目大意

[ARC125C] LIS to Original Sequence

题目描述

给定一个长度为 kk 的序列 A1,A2,,AnA_1,A_2,\cdots,A_n,试求出长度为 nn 的序列 PP,使得 PP 的最长上升子序列为 A1,A2,,AnA_1,A_2,\cdots,A_n,且 PP 的字典序最小。

输入格式

第一行两个用空格隔开的整数 n,kn,k

第二行 nn 个整数,分别为 A1,A2,,AnA_1,A_2,\cdots,A_n

输出格式

用空格隔开的序列 PP,含义如题目描述所述。

样例 #1

样例输入 #1

3 2
2 3

样例输出 #1

2 1 3

样例 #2

样例输入 #2

5 1
4

样例输出 #2

5 4 3 2 1

提示

数据范围

  • 1  K  N  2 × 105 1\ \leq\ K\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  A1 < A2 <  < AK  N 1\ \leq\ A_1\ <\ A_2\ <\ \cdots\ <\ A_K\ \leq\ N
  • 输入的所有值均为整数。

样例一解释

P=213P=(2,1,3)231(2,3,1) 时,PP 的最长上升子序列与 AA 一样。 其中,213(2,1,3)的字典序最小。

3 2
2 3
2 1 3
5 1
4
5 4 3 2 1

提示

制約

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

Sample Explanation 1

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