题目描述
定义长度为 n 的排列 P 的前缀最小值数组为一个长度为n的数组A,其中 A[i]=min P[j](1≤j≤i)。
对二元组<i,A[i]>按照如下规则排序:
<i,A[i]>小于<j,A[j]>
当且仅当A[i]<A[j]或A[i]=A[j]且i<j。 将排序后的二元组的第一个元素按顺序排列得到排列Q。
现在,因为Reverie的粗心,她丢失了原排列P,你能根据排列Q还原排列P么?
如果有多个符合要求的排列P,输出字典序最小的那一个。
输入描述
第一行输入一个整数n表示排列的长度。
第二行输入一个长度为n的排列Q。
输入保证存在至少一个满足条件的排列P。
$1≤n≤10^5$
输出描述
输出一行一个长度为n的排列,表示字典序最小的满足条件的排列P,以空格分割。
样例输入
5 5 3 4 1 2
样例输出
3 4 2 5 1
提示
样例解释 P:3 4 2 5 1 A:3 3 2 2 1 Q:5 3 4 1 2
来源
Wannacry-02