#1003. 排序问题1

排序问题1

题目描述

给定一个长度为 nn 的数组 a1,a2,,ana_1, a_2, \dots, a_n 以及一个正整数 KK

对于数组中的每一个元素 aia_i1in1 \le i \le n),你都必须从以下两种操作中选择一种执行:

  • 保持 aia_i 的值不变;
  • aia_i 的值加上 KK,即变为 ai+Ka_i + K

请判断,能否通过为每个元素选择合适的操作,使得最终的数组变成一个非降序的序列。

如果一个序列满足对于所有的 1i<n1 \le i < n,都有 aiai+1a_i \le a_{i+1} 成立,则称其为非降序序列。

输入格式

第一行包含一个整数 TT —— 表示测试用例的数量。

对于每个测试用例:

  • 第一行包含两个正整数 nnKK —— 分别表示数组的长度和给定的加数。
  • 第二行包含 nn 个正整数 a1,a2,,ana_1, a_2, \dots, a_n —— 表示数组的初始元素。

输出格式

对于每个测试用例,如果能够使数组变成非降序序列,输出 Yes;否则输出 No

样例输入 1

4
3 2
1 3 2
3 1
3 1 2
4 5
10 8 6 4
4 10
2 2 2 2

样例输出 1

Yes
No
No
Yes

说明

样例解释

  • 在第一个样例中,我们可以对 a3a_3 加上 K=2K=2,其余元素保持不变。最终序列变为 [1,3,4][1, 3, 4],是非降序的,因此输出 Yes
  • 在第二个样例中,K=1K=1。无论如何操作,第一个元素最小为 33。为了满足非降序,a2a_2 至少要大于等于 33,但 a2a_2 即使加上 KK 也只有 1+1=21+1=2,无法满足要求,因此输出 No
  • 在第三个样例中,可以证明任何操作都无法使原序列变成非降序,所以输出 No
  • 在第四个样例中,原序列已经是非降序的,所有元素都可以选择保持不变(或者全部加上 KK),因此输出 Yes

数据范围

对于所有测试点,保证:

  • 1T1041 \le T \le 10^4
  • 1n2×1051 \le n \le 2 \times 10^5
  • 1K1091 \le K \le 10^9
  • 1ai1091 \le a_i \le 10^9
  • 保证同一测试点内所有测试用例的 nn 之和不超过 2×1052 \times 10^5
  • 保证所有的输入数值均为整数。