CF2126C.I Will Definitely Make It
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 n 座塔,编号从 1 到 n。第 i 座塔的高度为 hi。在时间 0 时,你位于编号为 k 的塔上,此时水位为 1。
每秒水位上升 1 单位。任何时刻,如果你所在塔的高度严格小于当前水位,你就会被淹没。
你有一种魔法能力:在时刻 x,你可以开始从第 i 座塔传送到第 j 座塔,传送需要花费 ∣hi−hj∣ 秒。也就是说,在 x+∣hi−hj∣ 时刻之前,你都停留在第 i 座塔上,到 x+∣hi−hj∣ 时刻你会到达第 j 座塔。你可以在刚到达第 j 座塔的同一时刻再次开始新的传送。
例如,如果 n=k=4,h=[4,4,4,2],那么如果你在时刻 0 从第 4 座塔开始传送到第 1 座塔,移动过程如下图所示:

注意,如果第 1 座塔的高度是 5,你就无法立即传送到它,因为在时刻 2 你就会被淹没。
你的目标是在被水淹没之前,抵达任意一座最高的塔。
请判断是否可以做到。
输入格式
每组测试数据包含若干组测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例的组数。接下来是每组测试用例的描述。
每组测试用例的第一行包含两个整数 n 和 k(1≤k≤n≤105),分别表示塔的数量和你初始所在塔的编号。
第二行包含 n 个整数 h1,h2,…,hn(1≤hi≤109),表示每座塔的高度。
保证所有测试用例中 n 的总和不超过 105。
输出格式
对于每组测试用例,输出一行,如果你能在被水淹没前到达最高的塔,输出 "YES";否则输出 "NO"。
你可以用任意大小写输出答案(如 "yEs"、"yes"、"Yes"、"YES" 都是正确的)。
输入输出样例
输入#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
输出#1
YES NO YES YES NO
说明/提示
在第一个测试用例中,唯一可行的路径为:3→2→1→4→5。
在第二个测试用例中,无论顺序如何,都无法到达最高的塔。
在第三个测试用例中,其中一种可行路径为:4→1。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?