#A19. 【USTC新生赛2025】D. CSTU 1

    ID: 202 Type: Default 3000ms 1024MiB

【USTC新生赛2025】D. CSTU 1

题目背景

University of Science and Technology of China?什么学校喜欢这么拗口的英文名有两个 of?为什么不能直接改成 CSTU?

什么还有一个难兄难弟?也是 “University of ... of China”?什么?UCAS 也有两个 of?可惜它并不以 China 结尾呀!

题目描述

初始给定一个长度为 nn 的序列 1,2,...,n1,2,...,n

其中有 kk 个元素需要进行操作。定义一次操作(参数为 xx)如下:

  • 首先找到序列中值为 xx 的元素,不妨 ap=xa_p=x。(必须保证存在 ap=xa_p=x
  • 找到最大的 l<pl<p 满足 ala_l 是后续操作的参数(若不存在则 l=0l=0
  • 找到最小的 r>pr>p 满足 ara_r 是后续操作的参数(若不存在则 r=len(a)+1r=\text{len}(a)+1)。len(a)\text{len}(a) 为序列的长度。
  • 删除 apa_p 并对 l+1p1l+1\sim p-1p+1r1p+1\sim r-1 位置上的数进行整体交换。正式化地,操作后如下:
$$a_1,...,a_l,\ a_{p+1},...,a_{r-1},\ a_{l+1},...,a_{p-1},\ a_r,... $$

克露丝卡尔酱按照顺序给出 kk 个需要操作的元素 cic_i,你需要输出依次执行以上所有操作后的序列。

输入格式

第一行两个整数 nn (1n1061\le n\le 10^6) 和 kk (1kn1\le k\le n)。

第二行 kk 个整数按照顺序给出所有需要操作的元素 cic_i(1cin1\le c_i\le n)。保证所有 cic_i 互不相同。

输出格式

输出一行 nkn-k 个元素表示执行以上所有操作后的序列。

样例 #1

样例输入 #1

7 2
6 2

样例输出 #1

7 3 4 5 1

提示

执行完第一次操作后变成 [1,2,7,3,4,5][1, 2, 7, 3, 4, 5]

执行完第二次操作后变成 [7,3,4,5,1][7, 3, 4, 5, 1]