问题 6057 --坐椅子

6057: 坐椅子★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 59  解决: 14
[提交][状态][命题人:]

题目描述

现有m张椅子依次排成一个圆圈,椅子的编号从0m−1,有n个人想坐在这些椅子上。具体要求是:第i个坐在某张椅子后,他的左右两边都至少要各留a[i]张空椅子,即左右两边都至少要有a[i]张空椅子。

也就是说,如果他们中第i个人坐在第j张椅子上,那么其他人就不应该坐在以下编号的椅子上:(j−a[i]) mod m, (j−a[i]+1)mod m,(j+a[i]−1)mod m, (j+a[i])mod m。其中:mod是模运算符。

     请问按照上述规则,所有的n个人是否都可以找到椅子坐下?如果可以,则请输出“YES”,否则,请输出”NO”;

输入

        第一行一个整数t(1≤t≤5e4):测试用例数;

        接下来共2t行,每个测试用例两行:

        第一行为两个整数nm1≤n≤1e51≤m≤1e9):n为人数,m为椅子数量;

        第二行为n个整数a1,a2,a3,……,an1≤ai≤1e9):ai为第i个人左右两边空椅子的最少数量;

输出

       输出共t行,每个测试用例一行一个字符串:YES或者NO

样例输入
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
样例输出
Copy
NO
YES
NO
YES
NO
YES

提示

来源

 

[提交][状态]