atcoder#ARC114F. [ARC114F] Permutation Division

[ARC114F] Permutation Division

配点 : 900900

問題文

1,2,,N1, 2, \cdots, N の順列 PP が与えられます.

あなたは好きなように PP をちょうど KK 個の非空な連続部分列に分割することができます.

maroon 君はあなたの分割した連続部分列を並び替え,連結して,新しく順列 QQ を作ります.maroon 君は QQ を辞書順で最大にしようとします.

あなたは QQ が辞書順で最小になるように PP を連続部分列に分割したいです.そのときの QQ を求めてください.

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1KN1 \leq K \leq N
  • 1PiN1 \leq P_i \leq N
  • PiPj(ij)P_i \neq P_j (i \neq j)
  • 入力は全て整数

入力

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

NN KK

P1P_1 P2P_2 \cdots PNP_N

出力

あなたが PP を最適に分割した場合の QQ を出力せよ.

3 2
1 2 3
2 3 1

PP の分割方法としては,(1,2),(3)(1, 2),(3) または (1),(2,3)(1), (2, 3) が考えられます.

前者であれば maroon 君は (3),(1,2)(3), (1, 2) と連続部分列を並び替えて Q=(3,1,2)Q = (3, 1, 2) を得ます.

後者であれば maroon 君は (2,3),(1)(2, 3), (1) と連続部分列を並び替えて Q=(2,3,1)Q = (2, 3, 1) を得ます.

よってあなたは後者のように分割するべきです.

4 3
4 3 1 2
4 3 1 2
20 7
10 5 8 2 1 9 12 20 15 3 7 6 19 4 11 17 13 14 16 18
10 5 8 2 7 6 19 4 11 17 13 14 16 18 3 1 9 12 20 15