CF2126C I Will Definitely Make It
题目描述
有 $n$ 座塔,编号从 $1$ 到 $n$。第 $i$ 座塔的高度为 $h_i$。在时间 $0$ 时,你位于编号为 $k$ 的塔上,此时水位为 $1$。
每秒水位上升 $1$ 单位。任何时刻,如果你所在塔的高度严格小于当前水位,你就会被淹没。
你有一种魔法能力:在时刻 $x$,你可以开始从第 $i$ 座塔传送到第 $j$ 座塔,传送需要花费 $|h_i - h_j|$ 秒。也就是说,在 $x + |h_i - h_j|$ 时刻之前,你都停留在第 $i$ 座塔上,到 $x + |h_i - h_j|$ 时刻你会到达第 $j$ 座塔。你可以在刚到达第 $j$ 座塔的同一时刻再次开始新的传送。
例如,如果 $n=k=4$,$h=[4, 4, 4, 2]$,那么如果你在时刻 $0$ 从第 $4$ 座塔开始传送到第 $1$ 座塔,移动过程如下图所示:

注意,如果第 $1$ 座塔的高度是 $5$,你就无法立即传送到它,因为在时刻 $2$ 你就会被淹没。
你的目标是在被水淹没之前,抵达任意一座最高的塔。
请判断是否可以做到。
输入格式
每组测试数据包含若干组测试用例。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的组数。接下来是每组测试用例的描述。
每组测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 10^5$),分别表示塔的数量和你初始所在塔的编号。
第二行包含 $n$ 个整数 $h_1, h_2, \dots, h_n$($1 \le h_i \le 10^9$),表示每座塔的高度。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每组测试用例,输出一行,如果你能在被水淹没前到达最高的塔,输出 "YES";否则输出 "NO"。
你可以用任意大小写输出答案(如 "yEs"、"yes"、"Yes"、"YES" 都是正确的)。
说明/提示
在第一个测试用例中,唯一可行的路径为:$3 \rightarrow 2 \rightarrow 1 \rightarrow 4 \rightarrow 5$。
在第二个测试用例中,无论顺序如何,都无法到达最高的塔。
在第三个测试用例中,其中一种可行路径为:$4 \rightarrow 1$。
由 ChatGPT 4.1 翻译