CF2126C.I Will Definitely Make It

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

I Will Definitely Make It

题目描述

nn 座塔,编号从 11nn。第 ii 座塔的高度为 hih_i。在时间 00 时,你位于编号为 kk 的塔上,此时水位为 11

每秒水位上升 11 单位。任何时刻,如果你所在塔的高度严格小于当前水位,你就会被淹没。

你有一种魔法能力:在时刻 xx,你可以开始从第 ii 座塔传送到第 jj 座塔,传送需要花费 hihj|h_i - h_j| 秒。也就是说,在 x+hihjx + |h_i - h_j| 时刻之前,你都停留在第 ii 座塔上,到 x+hihjx + |h_i - h_j| 时刻你会到达第 jj 座塔。你可以在刚到达第 jj 座塔的同一时刻再次开始新的传送。

例如,如果 n=k=4n=k=4h=[4,4,4,2]h=[4, 4, 4, 2],那么如果你在时刻 00 从第 44 座塔开始传送到第 11 座塔,移动过程如下图所示:

注意,如果第 11 座塔的高度是 55,你就无法立即传送到它,因为在时刻 22 你就会被淹没。

你的目标是在被水淹没之前,抵达任意一座最高的塔。

请判断是否可以做到。

输入格式

每组测试数据包含若干组测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的组数。接下来是每组测试用例的描述。

每组测试用例的第一行包含两个整数 nnkk1kn1051 \le k \le n \le 10^5),分别表示塔的数量和你初始所在塔的编号。

第二行包含 nn 个整数 h1,h2,,hnh_1, h_2, \dots, h_n1hi1091 \le h_i \le 10^9),表示每座塔的高度。

保证所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每组测试用例,输出一行,如果你能在被水淹没前到达最高的塔,输出 "YES";否则输出 "NO"。

你可以用任意大小写输出答案(如 "yEs"、"yes"、"Yes"、"YES" 都是正确的)。

说明/提示

在第一个测试用例中,唯一可行的路径为:$3 \rightarrow 2 \rightarrow 1 \rightarrow 4 \rightarrow 5$。

在第二个测试用例中,无论顺序如何,都无法到达最高的塔。

在第三个测试用例中,其中一种可行路径为:414 \rightarrow 1

由 ChatGPT 4.1 翻译

样例

5
5 3
3 2 1 4 5
3 1
1 3 4
4 4
4 4 4 2
6 2
2 3 6 9 1 2
4 2
1 2 5 6
YES
NO
YES
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验