atcoder#ARC114F. [ARC114F] Permutation Division

[ARC114F] Permutation Division

题目描述

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

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

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

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

输入格式

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

N N K K P1 P_1 P2 P_2 \cdots PN P_N

输出格式

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

题目大意

  • 给定一个 1n1\sim n 的排列。
  • Alice 要把它分成 kk 段,Bob 要把这 kk 段重排使得字典序最大。
  • 问 Alice 的所有划分方式中最终得到的字典序最小的排列是什么。
  • kn2×105k\le n\le 2\times10^5
3 2
1 2 3
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

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  K  N 1\ \leq\ K\ \leq\ N
  • 1  Pi  N 1\ \leq\ P_i\ \leq\ N
  • Pi  Pj (i  j) P_i\ \neq\ P_j\ (i\ \neq\ j)
  • 入力は全て整数

Sample Explanation 1

P P の分割方法としては,(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) を得ます. よってあなたは後者のように分割するべきです.