U514939 ١١(❛ᴗ❛)【单调栈】-左右两侧第一小于等于值(存在重复情况)
题目描述
作为一个刚刚进入数据结构的学习者,为了减轻大家的负担,我们直接开始进入正题。
给定一个数组,数组内部存在重复项并且数据的大小都大于等于$ 0 $。
现在给你提出问题,直接回答每一个位置$ i $左侧小于等于$ a[i] $的第一个元素的下标以及每一个位置$i$ 右侧小于等于$a[i]$的第一个元素的下标。
如果找不到这样的位置,直接输出`-1`。
输入格式
第一行给定一个正整数$ n $。
第二行给定$ n $个大于等于$ 0 $的整数,整数之间用空格间隔。
输出格式
输出$n$行。
第$i$行包括两个整数,分别是左侧小于等于$ a[i] $的第一个元素的下标和右侧小于等于$ a[i] $的第一个元素的下标。
中间用空格间隔。找不到合法下标的直接输出$-1$。
说明/提示
| 测试点编号 | $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 $ | 无 |