题意:一个序列里面第 i 个位置代表第 i 种糖果的数量,每次吃只能吃当前数量最多的,并且每次相邻两次只能吃不同种类的,问是否能够吃完所有的
思路:要想吃完所有的,那么该序列中最多糖果的数量和第二多的数量不能相差超过1
#include<bits/stdc++.h>
using namespace std;
int a[2000001];
int main()
{
int n;cin>>n;
while(n--)
{
int t;cin>>t;
for(int i=0;i<t;i++) cin>>a[i];
sort(a,a+t);
if(a[t-1]>a[t-2]+1) cout<<"NO"<<endl;//最大数量和第二大数量相差是否超过1
else cout<<"Yes"<<endl;
}
return 0;
}