2014. 最小字典序排列

时间限制 1000 ms   内存限制 256 MB

cats有一个 $1$ 到 $n$ 的排列 $b$ 和一个区间 $[l,r]$ ,对于每一个 $1$ 到 $n$ 的排列 $a$ ,cats依次执行以下两个操作

1.将排列 $a$ 区间 $[l,r]$ 内的所有数从小到大排序。

2.令 $c_i= a_{b_i} (1\le i\le n)$ 。

求cats用以上方法生成的 $n!$ 个排列 $c$ 中字典序最小的排列。

注:对于两个长为 $n$ 的排列 $p,q$ ,如果存在 $1\le x\le n$ ,满足 $p_x< q_x$ ,且对于所有的 $1\le i< x$ ,都有 $p_i= q_i$ ,则认为 $p$ 的字典序小于 $q$ 。

输入数据

第一行为三个整数 $n,l,r (1\le n\le 10^5,1\le l\le r\le n)$ ,分别表示cats的排列的长度和区间的左右端点。

第二行为 $n$ 个整数,表示排列 $b$ 。

输出数据

第一行为 $n$ 个整数,表示字典序最小的排列 $c$ 。

样例输入

复制
3 2 3
3 2 1 · · \n
 · · \n

样例输出

复制
2 1 3 · · \n

样例说明

若 $a$ 为 $(1,2,3)$ 或 $(1,3,2)$ ,排序后的 $a$ 为 $(1,2,3)$ ,生成的 $c$ 为 $(3,2,1)$ 。

若 $a$ 为 $(2,1,3)$ 或 $(2,3,1)$ ,排序后的 $a$ 为 $(2,1,3)$ ,生成的 $c$ 为 $(3,1,2)$ 。

若 $a$ 为 $(3,1,2)$ 或 $(3,2,1)$ ,排序后的 $a$ 为 $(3,1,2)$ ,生成的 $c$ 为 $(2,1,3)$ 。

其中字典序最小的 $c$ 为 $(2,1,3)$ 。

提交

请先 登录

© 2024 FAQs Contact About