#HTJ79A. 校庆花环

校庆花环

题目描述

校庆前夕,学生会需要用花装饰圆形广场的围栏,学生会把这个任务分配给了小天。

花环由 n n 种不同颜色的花朵组成,第 i i 种颜色的花有 a[i] a[i] 朵。为了让花环看起来层次丰富,规定任意一种颜色的花不能连续出现超过m+1m+1(即不允许同色花连续 m+1 m+1 朵及以上)。由于是圆形花环,所以首尾两朵花也视为相邻

现在需要判断:是否存在一种摆放方案,能将所有花朵用完且符合上述规则?若存在满足规则的摆放方案,输出 YES,否则输出 NO

输入格式

第一行包含一个正整数 T T ,表示测试数据的组数。

每组数据的格式如下:

  • 第一行包含两个正整数 n n m m

  • 第二行包含 n n 个正整数 a1,a2,,an a_1, a_2, \dots, a_n (表示每种颜色的花朵数量)。

输出格式

对每组数据,输出 YESNO(表示是否存在合法的摆放方案)。

4  
2 2  
2 1  
3 2  
4 5 5  
2 1  
3 1  
1 2
5
YES  
YES 
NO  
NO

样例解释 #1

  • 第 1 组:一种合法的摆放方案是 3,1,2(环形中首尾的 1 和 2 不连续,同色花最多连续 2 朵,符合规则)。

  • 第 2 组:一种合法的摆放方案是 2,2,3,3,1,1,2,2,3,3,1,1,2,3(所有同色花连续数量不超过 m=2 m=2 )。

  • 第 3 组:无论如何摆放(例如尝试 1,2,3,1,1),都会出现 3 朵第一种花首尾相邻的情况,不合法。

  • 第 4 组:只能摆放成 1 1 1 1 1(5 朵同色花连续,超过 m=4 m=4 ),不合法。

数据范围

本题共 10 个测试点,各测试点的约束如下:

测试点编号 n n 的范围 a[i] a[i] 的范围
1 ~ 2 n=1 n = 1 100 \leq 100
3 ~ 4 n=2 n = 2
5 ~ 6 n=3 n = 3
7 ~ 8 n20 n \leq 20 1000 \leq 1000
9 ~ 10 n20000 n \leq 20000 106 \leq 10^6

对所有测试数据,满足:1T10 1 \leq T \leq 10 1m50 1 \leq m \leq 50