CF2031D Penchick and Desert Rabbit
题目描述
为了挑战自己的极限,Penchick 决定在阿拉伯沙漠的正午阳光下生存!
在沿着一条线性绿洲跋涉时,Penchick 看到一只沙漠兔子正准备在一排棕榈树之间跳跃。有 $n$ 棵树,每棵树的高度为 $a_i$。
兔子可以在满足下列某一条件时,从第 $i$ 棵树跳到第 $j$ 棵树:
- 当 $j < i$ 且 $a_j > a_i$ 时:兔子可以向后跳到更高的树。
- 当 $j > i$ 且 $a_j < a_i$ 时:兔子可以向前跳到更矮的树。
对于每个 $i$($1 \leq i \leq n$),请你求出如果兔子从第 $i$ 棵树出发,能够到达的所有树中高度的最大值。
输入格式
第一行包含一个整数 $t$($1 \leq t \leq 5 \cdot 10^5$),表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 5 \cdot 10^5$),表示树的数量。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq n$),表示每棵树的高度。
保证所有测试用例中 $n$ 的总和不超过 $5 \cdot 10^5$。
输出格式
对于每个测试用例,输出 $n$ 个整数,第 $i$ 个整数表示如果兔子从第 $i$ 棵树出发,能够到达的所有树中高度的最大值。
说明/提示
在第一个测试用例中,初始树的高度为 $a = [2, 3, 1, 4]$。
- 如果兔子从第一棵树出发,可以跳到第三棵树,因为 $3 > 1$ 且 $1 < 2$。然后,兔子可以跳到第二棵树,因为 $2 < 3$ 且 $3 > 1$。可以证明兔子无法到达第四棵树,因此能够到达的最大高度为 $a_2 = 3$。
- 如果兔子从第四棵树出发,由于它已经在最高的树上,无需跳跃。
在第二个测试用例中,无论兔子从哪棵树出发,都可以跳到第一棵树。
在第五个测试用例中,如果兔子从第五棵树出发,可以跳到第四棵树,然后跳到第七棵树,最后到达第六棵树。因此,能够到达的最大高度为 $8$。
由 ChatGPT 4.1 翻译