U514895 ١١(❛ᴗ❛)【单调栈】-左侧第一个较小值(不重复)

题目描述

作为一个刚刚进入数据结构的学习者,为了减轻大家的负担,我们直接开始进入正题。 给定一个数组,数组内部的所有数字保证没有重复并且数据的大小都大于等于$ 0 $。 现在给你提出问题,直接回答每一个位置$ i $左侧小于$ a[i] $的第一个元素的下标。 如果找不到这样的位置,直接输出`-1`。

输入格式

第一行给定一个正整数$ n $。 第二行给定$ n $个大于等于$ 0 $的整数,整数之间用空格间隔。 为了减少输入导致的卡常,如果$n$大于$ 1000 $,直接输出所有答案位置的位异或($^$)值。

输出格式

输出一行答案,分别代表不同位置的左侧第一小的元素下标,用空格进行间隔。异或值输出不包含第一个。

说明/提示

| 测试点编号 | $n \leq$ | $a[i]$ | 特殊性质 | | ----------- | :------: | :----------------: | :------: | | $ 1\sim 10 $ | $10$ | $ 0\sim 10 $ | 无 | | $11 \sim 20$ | $10 ^ 3$ | $ 0\sim 1000 $ | 无 | | $21\sim 40$ | $5 * 10 ^ 5$ | $ 0\sim 10^9 $ | 无 |