atcoder#ABC262F. [ABC262F] Erase and Rotate

[ABC262F] Erase and Rotate

配点 : 500500

問題文

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

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

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

制約

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

入力

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

NN KK

p1p_1 p2p_2 \ldots pNp_N

出力

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

5 3
4 5 2 3 1
1 2 3

以下のように操作をすると PP(1,2,3)(1,2,3) になります。

  • 先頭の項を削除する。これによって PP(5,2,3,1)(5,2,3,1) になる。
  • 末尾の項を先頭に移動させる。これによって PP(1,5,2,3)(1,5,2,3) になる。
  • 先頭から 22 番目の項を削除する。これによって PP(1,2,3)(1,2,3) になる。

また、辞書順で (1,2,3)(1,2,3) より小さい数列は操作後の PP として考えられません。よってこれが答えです。

3 0
3 2 1
3 2 1

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

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