题目相当于数学中排列组合的插板法。
如果给出的糖果中其他糖果的数量之和能够大于或等于数量最多的那种糖果的数量,则yes
否则no
#include<stdio.h>
int a[1000000];
int main()
{
__int64 t,m,i,j,k,T,p, n,sum=0,max=0;
scanf("%I64d",&T);
for(i=0;i<T;i++)
{
scanf("%I64d",&n);
for(j=0;j<n;j++)
{
scanf("%I64d",&a[j]);
if(a[j]>max)
{
max=a[j];
p=j;
}
}
for(j=0;j<n;j++)
{
if(j!=p)
{
sum+=a[j];
}
}
if(sum>=max-1)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
sum=0;
max=0;
}
return 0;
}