题目描述
给定一个由n个正整数组成的序列a,你可以通过j一i个花费交换a;, aj(j > i)两个元素。
我们定义一个位置i是好的,当且仅当ai不与其他元素发生交换的前提下,使得a1,...,ai-1≤ai,即位置1~i-1上的元素均小于等于ai。请注意,满足上述要求并不需要1~i-1中元素有序,只需要满足与ai的相对大小关系即可。
对于所有的 i ∈ {1,2,... , n},分别求出使位置 i 是好的所需要的最小花费是多少。如果怎么操作都无法使 i 位置是好的,则输出一1。
对于每个i,进行的操作是相互独立的,并没有真正修改原数组的位置。
我们定义一个位置i是好的,当且仅当ai不与其他元素发生交换的前提下,使得a1,...,ai-1≤ai,即位置1~i-1上的元素均小于等于ai。请注意,满足上述要求并不需要1~i-1中元素有序,只需要满足与ai的相对大小关系即可。
对于所有的 i ∈ {1,2,... , n},分别求出使位置 i 是好的所需要的最小花费是多少。如果怎么操作都无法使 i 位置是好的,则输出一1。
对于每个i,进行的操作是相互独立的,并没有真正修改原数组的位置。
输入
输入一行一个正整数n(1 ≤n ≤1e5),代表序列a的长度。
接下来一行n个正整数a1, a2,..., an(0 ≤ai≤1e9),代表序列a 的元素。
接下来一行n个正整数a1, a2,..., an(0 ≤ai≤1e9),代表序列a 的元素。
输出
输出一行n 个整数,第 i 个整数代表使得 i 位置是好的所需要的最小花费,如果怎么操作都无法使 i 位置是好的,输出—1。
样例输入 Copy
7
1 9 1 9 8 1 0
样例输出 Copy
0 0 4 0 7 -1 -1
提示
对于位置1,左边并没有元素,因此不需要操作即可满足条件。
对于位置2,左边有元素1,由于 1<9,因此不需要操作即可满足条件。
对于位置3,左边有元素 1,9,由于a2 > a3,不满足条件,此时我们可以花费4 的代价,交换a2, a6,此时满足条件。
注意,此时虽然交换了数组,但是由于不同位置的情况是独立的,尽管上一次交换了a2,a6,在考虑下一个位置的情况时,我们仍然当a是原数组 1,9,1,9,8,1,0。
对于位置6,左边a2, a4,a5均大于a6,但很明显,不论如何交换,不可能使得位置1~5上的元素均小于等于a6,因此输出―1。
对于位置2,左边有元素1,由于 1<9,因此不需要操作即可满足条件。
对于位置3,左边有元素 1,9,由于a2 > a3,不满足条件,此时我们可以花费4 的代价,交换a2, a6,此时满足条件。
注意,此时虽然交换了数组,但是由于不同位置的情况是独立的,尽管上一次交换了a2,a6,在考虑下一个位置的情况时,我们仍然当a是原数组 1,9,1,9,8,1,0。
对于位置6,左边a2, a4,a5均大于a6,但很明显,不论如何交换,不可能使得位置1~5上的元素均小于等于a6,因此输出―1。