先吃一个最多的, 再吃一个其他的,只要最多的满足sum - max + 1 >= max , 那么就可以吃完.
#include"stdio.h" int main() { int t,i; __int64 a,max,n,sum; scanf("%d",&t); while(t--) { scanf("%I64d",&n); max=sum=0; for(i=0;i<n;i++) { scanf("%I64d",&a); sum+=a; if(max<a)max=a; } if(sum-max+1>=max) printf("Yes\n"); else printf("No\n"); } return 0; }