atcoder#ABC262F. [ABC262F] Erase and Rotate

[ABC262F] Erase and Rotate

题目描述

1,2,,N 1,2,\ldots,N がちょうど 1 1 回ずつ現れる数列 P = (p1,p2,,pN) P\ =\ (p_1,p_2,\ldots,p_N) が与えられます。
あなたは以下の操作のうち 1 1 つを選んで行うことを 0 0 回以上 K K 回以下繰り返せます。

  • P P の項を 1 1 つ選び、削除する。
  • P P の末尾の項を先頭に移動させる。

操作後の P P として考えられるもののうち辞書順で最小のものを求めてください。

输入格式

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

N N K K p1 p_1 p2 p_2 \ldots pN p_N

输出格式

操作後の P P として考えられるもののうち辞書順で最小のものを空白区切りで出力せよ。

题目大意

给定一个排列 {an}\{a_n\},有两种操作:

  • 将最后数提到最前(Rotate)

  • 删除一个数(Erase)

求操作不超过 kk 次后最小字典序。

第一行输入 n,kn,k,第二行输入 {an}\{a_n\}。输出一行数,代表最小字典序。

5 3
4 5 2 3 1
1 2 3
3 0
3 2 1
3 2 1
15 10
12 10 7 2 8 11 9 1 6 14 3 15 13 5 4
1 3 4 7 2 8 11 9

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 0  K  N1 0\ \leq\ K\ \leq\ N-1
  • 1  pi  N 1\ \leq\ p_i\ \leq\ N
  • (p1,p2,,pN) (p_1,p_2,\ldots,p_N) には 1,2,,N 1,2,\ldots,N がちょうど 1 1 回ずつ現れる。
  • 入力はすべて整数

Sample Explanation 1

以下のように操作をすると P P (1,2,3) (1,2,3) になります。 - 先頭の項を削除する。これによって P P (5,2,3,1) (5,2,3,1) になる。 - 末尾の項を先頭に移動させる。これによって P P (1,5,2,3) (1,5,2,3) になる。 - 先頭から 2 2 番目の項を削除する。これによって P P (1,2,3) (1,2,3) になる。 また、辞書順で (1,2,3) (1,2,3) より小さい数列は操作後の P P として考えられません。よってこれが答えです。

Sample Explanation 2

操作を 1 1 回も行えない場合があります。