很有意思的一道题,刚看题的时候觉得很难,但是仔细一想会发现规律,即找到个数最多的糖果max,只要max小于等于剩下的素有糖果数量+1就Yes,都则No.
#include <stdio.h>
#include <stdlib.h>
int main(){
int t, n, s, *a, max;
scanf("%d", &t);
while(t-- && scanf("%d", &n)){
a = (int *)malloc(sizeof(int) * n);
s = max = 0;
for(int i = 0; i != n; ++i){
scanf("%d", &a[i]);
if(a[i] > max) max = a[i];
s += a[i];
}
if(s - max >= max - 1) printf("Yes\n");
else printf("No\n");
free(a);
}
return 0;
}