P3165 [CQOI2014]排序机械臂
2021-06-20 11:06
题目描述
为了把工厂中高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂。它遵循一个简单的排序规则,第一次操作找到高度最低的物品的位置 P1P_1P1? ,并把左起第一个物品至 P1P_1P1? 间的物品 (即区间 [1,P1][1,P_1][1,P1?] 间的物品) 反序;第二次找到第二低的物品的位置 P2P_2P2? ,并把左起第二个至 P2P_2P2? 间的物品 (即区间 [2,P2][2,P_2][2,P2?] 间的物品) 反序……最终所有的物品都会被排好序。
上图给出有六个物品的示例,第一次操作前,高度最低的物品在位置 444 ,于是把第一至第四的物品反序;第二次操作前,第二低的物品在位罝六,于是把第二至六的物品反序……
你的任务便是编写一个程序,确定一个操作序列,即每次操作前第 iii 低的物品所在位置 PiP_iPi? ,以便机械臂工作。需要注意的是,如果有高度相同的物品,必须保证排序后它们的相对位置关系与初始时相同。
输入输出格式
输入格式:第一行包含正整数n,表示需要排序的物品数星。
第二行包含n个空格分隔的整数PiP_iPi?,表示每个物品的高度。
输出格式:输出一行包含n个空格分隔的整数Pi。
输入输出样例
6
3 4 5 1 6 2
4 6 4 5 6 6
说明
N
Pi
上一篇:java面向对象编写的简单计算器
下一篇:java面试题目