CF1469C Building a Fence
题目描述
你想要建造一段由 $n$ 个相同部分组成的围栏。每个部分的宽度为 $1$,高度为 $k$。你会将所有部分并排放在一条直线上。
不幸的是,围栏下方的地面并不平坦。为简化问题,你可以认为第 $i$ 个部分下方的地面高度为 $h_i$。
你需要遵循以下几条规则来建造围栏:
1. 相邻的部分必须有至少长度为 $1$ 的公共边;
2. 第一个和最后一个部分必须正好放在对应的地面高度上;
3. 中间的部分可以放在地面高度上,也可以更高,但不能高于地面高度 $h_i$ 上方 $k-1$(高度必须为整数);
 第一组样例中可能的一种围栏(蓝色部分)
是否有可能建造出满足所有规则的围栏?
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $k$($2 \le n \le 2 \cdot 10^5$;$2 \le k \le 10^8$),分别表示围栏的部分数和每个部分的高度。
每个测试用例的第二行包含 $n$ 个整数 $h_1, h_2, \dots, h_n$($0 \le h_i \le 10^8$),其中 $h_i$ 表示第 $i$ 个部分下方的地面高度。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,如果可以建造出满足所有规则的围栏,输出 YES。否则,输出 NO。
你可以用任意大小写输出 YES 或 NO(例如,YES、Yes、yes、yEs 都会被识别为肯定答案)。
说明/提示
在第一个测试用例中,可能的一种围栏如图片所示。
在第二个测试用例中,根据第二条规则,你应将两个部分都放在对应的地面高度上,并且由于 $k=3$,$h_1=0$,$h_2=2$,第一条规则也被满足。
在第三个测试用例中,根据第二条规则,你应将第一个部分放在高度 $3$,第三个部分放在高度 $2$。根据第一条规则,第二个部分的高度至少为 $2$(以保证与第一个部分有公共边),但根据第三条规则,第二个部分的最大高度为 $h_2 + k - 1 = 1$,因此无法满足所有规则。
由 ChatGPT 4.1 翻译