#P1552. [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(1N100000)N(1 \leq N \leq 100000),表示物品的个数,。

第二行为 NN 个用空格隔开的正整数,表示 NN 个物品最初排列的编号。

输出格式

输出共一行,NN 个用空格隔开的正整数 P1,P2,P3,,Pn(1PiN)P_1,P_2,P_3,\ldots,P_n(1 \leq P_i \leq N)PiP_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