/ Vijos / 题库 /

排序机械臂

排序机械臂

时间限制:1秒  内存限制:256M


【题目描述】

  为了把工厂中 高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂。它遵循一个简单的排序规则,第一次操作找到最低的物品位置 \(P_1\),并把从左起第 1 个至第 \(P_1\) 个之间的物品反序;第二次找到第二低的物品的位置 \(P_2\),并把左起第二个至第 \(P_2\) 个之间的物品反序……最终所有的物品都会被排好序。
说明     
  上图给出一个示例,第一次操作前,最低物品在位置 4,于是把第 1 至第 4 个物品反序;第二次操作前,第二低的物品在位置 6,于是把第 2 至第 6 的物品反序…… 你的任务是编写一个程序,确定操作序列,即每次操作前第 \(i\) 低的物品所在的位置 \(P_i\),以便机械臂工作。需要注意的是,如果有高度相同的物品,必须保证排序后他们的相对位置关系与初始时相同。

【输入格式】

  第一行包含一个正整数 \(n\),表示需要排序的物品数量。
  第二行包含 \(n\) 和空格分隔的整数 \(a_i\),表示每个物品的高度。

【输出格式】

  输出一行包含 \(n\) 个空格分隔的整数 \(P_i\)。

【输入输出样例1】

 Input

6
3 4 5 1 6 2

 Output

4 6 4 5 6 6

【输入输出样例2】

 Input

4
3 3 2 1

 Output

4 2 4 4

【数据限制】

  对于 \(30\%\) 的数据,\(1≤n≤1000\)
  对于 \(100\%\) 的数据,\(1≤n≤100000\),\(1≤a[i]≤2 * 10^9\)

【来源】

  Mr.he**

信息

ID
2678
难度
(无)
分类
数据结构 | 平衡树 点击显示
标签
递交数
0
已通过
0
通过率
?
被复制
2
上传者