Round 778C
Novice233
·
·
个人记录
#include<bits/stdc++.h>
#define N 500005
using namespace std;
long long d[N],t,n;
int main(){
cin>>t;
while(t--){
memset(d,0,sizeof(d));
cin>>n;
int cnt=1;
for(int i=0;i<n;i++) cin>>d[i];
if(n==1) cout<<"YES";
sort(d,d+n);
if(n==2){
if(d[1]-d[0]<2) cout<<"YES";
else cout<<"NO";
}
for(int i=1;i<n-2;i++){
sort(d+i-1,d+i+2);
if((d[i]-d[i-1])<2) d[i]+=d[i-1];
else{
cnt=0;
cout<<"NO";
break;
}
//sort(d+i,d+i+3);
}
if(n>=3&&cnt==1){
sort(d+n-3,d+n);
if(d[n-2]-d[n-3]<2&&abs(d[n-1]-d[n-2]-d[n-3])<2) cout<<"YES";
else cout<<"NO";
}
/*if(n>=3&&d[n-2]<d[n-3]&&cnt==1){
swap(d[n-2],d[n-3]);
if(d[n-2]>d[n-1]) swap(d[n-2],d[n-1]);
if(abs(d[n-2]-d[n-3])<2) d[n-2]+=d[n-3];
else{
cnt=0;
//cout<<"NO";
}
}
else if(n>=3&&d[n-1]>=d[n-2]&&cnt==1){
if(abs(d[n-2]-d[n-3])<2) d[n-2]+=d[n-3];
else{
cnt=0;
//cout<<"NO";
}
}
if(cnt==1&&n!=1&&abs(d[n-1]-d[n-2])<2) cout<<"YES";
if(cnt==1&&n!=1&&abs(d[n-1]-d[n-2])>1) cout<<"NO";*/
//for(int i=0;i<n;i++) cout<<d[i]<<" ";
cout<<endl;
}
return 0;
}