Problem - A - Codeforces
解析:
首先最多只能存在两个值,因为间隔必须相同。并且两个值的数量相差小于等于1
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
int t,n,a[N];
map<int,int>mp;
signed main(){
scanf("%lld",&t);
while(t--){
scanf("%lld",&n);
mp.clear();
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
mp[a[i]]++;
}
if(mp.size()<=1) puts("YES");
else if(mp.size()==2){
int a=0,b=0;
for(auto it:mp){
if(!a) a=it.second;
else b=it.second;
}
if(abs(a-b)<=1) puts("YES");
else puts("NO");
}
else puts("NO");
}
return 0;
}