排序机械臂
时间限制: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**