1849: QинYу数组2.0
[Creator : ]
Description
M把椅子按顺序排成一圈。 椅子编号为0 ~ m−1。 N个人想坐在这些椅子上。 第i个想要在他的左边和右边至少有a[i]个空椅子。
更正式地说,如果第i个人坐在第j个椅子上,那么其他任何人都不应该坐在下列椅子上:(j−a[i])%m, (j−a[i]+1)%m,… (j +a[i]−1)%m, (j +a[i])%m。
是否有可能在给定的限制下,所有人都坐下 。
更正式地说,如果第i个人坐在第j个椅子上,那么其他任何人都不应该坐在下列椅子上:(j−a[i])%m, (j−a[i]+1)%m,… (j +a[i]−1)%m, (j +a[i])%m。
是否有可能在给定的限制下,所有人都坐下 。
Input
输入由多个测试用例组成。 第一行包含一个整数t(1≤t≤5⋅10^4)——测试用例的数量。 测试用例的描述如下。
每个测试用例的第一行包含两个整数n和m(2≤n≤10^5,1≤m≤10^9)——人的数量和椅子的数量。
下一行包含n个整数,a1, a2,… An(1≤ai≤10^9)-第i个人两边的最小空椅子数。
保证所有测试用例的n之和不超过10^5。
每个测试用例的第一行包含两个整数n和m(2≤n≤10^5,1≤m≤10^9)——人的数量和椅子的数量。
下一行包含n个整数,a1, a2,… An(1≤ai≤10^9)-第i个人两边的最小空椅子数。
保证所有测试用例的n之和不超过10^5。
Output
对于每个测试用例,如果每个人都可以坐下来完成限制,则打印“YES”(不带引号),否则打印“NO”(不带引号)。
Sample Input Copy
6
3 2
1 1 1
2 4
1 1
2 5
2 1
3 8
1 2 1
4 12
1 2 1 3
4 19
1 2 1 3
Sample Output Copy
NO
YES
NO
YES
NO
YES
HINT
测试用例1:n>m,所以它们不能坐下来。
测试用例2:第一个人可以坐在第2张椅子上,第二个人可以坐在第0张椅子上。 他们都希望两边至少有一把空椅子,1号和3号椅子是空的,所以这是一个很好的解决方案。
测试用例3:如果第二个人在某处坐下,他需要2张空椅子,在他的右侧和左侧,所以不可能为第一个人找到位置,因为只有5张椅子。
测试案例4:可以分别坐在1-st、4-th、7-th的椅子上。