#C3J0701. 最近的较小值

最近的较小值

题目描述

给定一个包含 nn 个整数的数组 xx。对于数组中的每一个位置,你需要找到其左侧距离最近的且值小于该位置值的元素的下标。

输入格式

第一行包含一个整数 nn,表示数组的大小。

第二行包含 nn 个整数 x1,x2,,xnx_1, x_2, \dots, x_n,表示数组的元素。

输出格式

输出一行 nn 个整数,对于数组中的每一个位置,输出其左侧最近的小于该位置值的元素的下标。如果不存在这样的元素,则输出 00

8
2 5 1 4 8 3 2 5
0 1 0 3 4 3 3 7

数据规模与约定

样例解释

对于第一个位置,其左侧没有元素,所以输出 00

对于第二个位置,值为 55,左侧的第一个元素值为 22,且 2<52 < 5,所以最近的小于它的元素的下标是 11

对于第三个位置,值为 11,左侧的两个元素分别为 2,52, 5,都大于 11,所以不存在小于它的元素,输出 00

对于第四个位置,值为 44,左侧的元素分别为 2,5,12, 5, 1。其中 2<42 < 41<41 < 4,最近的小于它的元素是 11,其下标是 33

以此类推。

数据范围

对于 100%100\% 的数据,1n21051 \le n \le 2 \cdot 10^51xi1091 \le x_i \le 10^9