#B0030. 向左看齐

向左看齐

题目描述

给定一个长度为 nn 的数组 a1,a2,,ana_1,a_2,\ldots,a_n。对于每个位置 ii,输出在它左侧最近的、值小于 aia_i 的位置;如果不存在这样的位置,则输出 00

输入格式

第一行包含一个整数 nn,表示数组长度。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,相邻整数之间用一个空格分隔。

输出格式

输出 nn 个整数 l1,l2,,lnl_1,l_2,\ldots,l_n。其中 lil_i 表示在原数组第 ii 个位置左侧最近且满足 ali<aia_{l_i}<a_i 的位置;如果不存在,则 li=0l_i=0

4
4 7 6 10
0 1 1 3

样例解释

对于样例:

  • i=1i=1 时,44 左边没有比它小的数,输出 00
  • i=2i=2 时,77 左侧最近比它小的数在下标 11
  • i=3i=3 时,66 左侧最近比它小的数在下标 11
  • i=4i=4 时,1010 左侧最近比它小的数在下标 33

数据范围与提示

  • 1n1051 \le n \le 10^5
  • 1ai1091 \le a_i \le 10^9