其实就是相当于所有给出种类最多的糖果类型里面个数最多的哪一类是一组,然后剩下的所有的糖果可以算是另一种,如果能错开的话就“Yes”,不能的话就不能。
另一种说法就是让所有种类的糖果从小到大的排序,然后看最多的,和第二多的差值是不是大于一,大于就不能,反之可以。
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
int n, m;
scanf("%d", &n);
while(n--)
{
int max=0,sum=0,k;
scanf("%d", &m);
for(int i =0; i<m; i++)
{
scanf("%d", &k);
sum+=k;
if(max<k)
max=k;
}
printf("%s\n", max-1<=sum-max? "Yes":"No");
}
return 0;
}