kuku吃糖果
原题链接https://nuoyanli.com/contest/36/problem/B
跟上次比赛题类似,因为一次吃一个糖果不重复,所以当最后的还剩一个糖果并且吃的上一个糖果与这个糖果种类不同的时候,可以吃完。
所以当 || 所有的糖果数-最多的种类的数目>=最多的种类的数目-1;时可以吃完,否则便不能吃完,
同时要注意数据范围,本题数据较大,使用数组时数组要足够。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;bool cmp(long long x,long long y)
{return x>y;
}int main()
{long long t;scanf("%lld",&t);while(t--){long long n;scanf("%lld",&n);long long i,j,sum=0;long long a[1000005];for(i=0;i<n;i++){scanf("%lld",&a[i]);sum+=a[i];}sort(a,a+n,cmp);long long ss=sum-a[0];if(ss<a[0]-1){printf("No\n");}else{printf("Yes\n");}}return 0;
}