#P4402. [Cerc2007] robotic sort 机械排序

[Cerc2007] robotic sort 机械排序

题目描述

SORT 公司是一个专门为人们提供排序服务的公司,该公司的宗旨是:“顺序是最美丽的”。他们的工作是通过一系列移动,将某些物品按顺序摆好。他们的工作规定只能使用如下方法排序:

先找到编号最小的物品的位置 P1P_1,将区间 [1,P1][1,P_1] 反转,再找到编号第二小的物品的位置 P2P_2,将区间 [2,P2][2,P_2] 反转.........

上图是有 66 个物品的例子,编号最小的一个是在第 44 个位置。因此,最开始把前面 44 个物品反转,第二小的物品在最后一个位置,所以下一个操作是把 262\sim 6 的物品反转,第三步操作是把 343\sim 4 的物品进行反转……

在数据中可能存在有相同的编号,如果有多个相同的编号,则按输入的原始次序操作。

输入格式

输入共两行,第一行为一个整数 N(1N105)N(1\leq N\leq 10^5),表示物品的个数。

第二行为 NN 个用空格隔开的正整数,表示 NN 个物品最初排列的编号 Ai(1Ai107)A_i(1\leq A_i\leq 10^7)

输出格式

输出共一行,NN 个用空格隔开的正整数 P1,P2,P3,PnP_1,P_2,P_3\cdots,P_nPiP_i表示第 ii 次操作前第 ii 小的物品所在的位置。

注意:如果第 ii 次操作前,第 ii 小的物品己经在正确的位置 PiP_i 上,我们将区间 [Pi,Pi][P_i,P_i] 反转(单个物品)。

6
3 4 5 1 6 2
4 6 4 5 6 6