#4602. Erase and Rotate

0

Erase and Rotate

Erase and Rotate

题目描述

给定一个序列 P=(p1,p2,…,pN)P = (p_1,p_2,\ldots,p_N),其中恰好包含 1,2,…,N1,2,\ldots,N 各一次。
你可以最多进行总计介于 00 到 KK 次之间的以下操作(顺序任意):

选择 PP 的一个项并将其移除。 将 PP 的最后一项移动到开头。

求通过这些操作可以得到的按字典序最小的 PP。

输入格式

输入按下列格式从标准输入给出: NN KK p1p_1 p2p_2 …\ldots pNp_N

输出格式

输出通过操作可以得到的按字典序最小的 PP,各数之间以空格分隔。

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×1051 \leq N \leq 2 \times 10^5 0≤K≤N−10 \leq K \leq N-1 1≤pi≤N1 \leq p_i \leq N (p1,p2,…,pN)(p_1,p_2,\ldots,p_N) 恰好包含 1,2,…,N1,2,\ldots,N 各一次。 输入中的所有数值均为整数。下面的操作能使 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)。 移除第二项使 PP 变为 (1,2,3)(1,2,3)。

没有办法得到比 (1,2,3)(1,2,3) 字典序更小的 PP,所以这是答案。
你也可能无法执行操作。

标签: AtCoder|abc262F

来源

AtCoder|abc262F