题目
题意
所给的数组能否在选取其中一个数字,在减去一部分后将减去部分加到另一个数字上。问最后能否使所有数字相同。
如果大于三种或小于三种不用考虑,判定三种数字的情况。
代码
#include<bits/stdc++.h>
using namespace std;
map<int,int> m;
map<int,int>::iterator it;
int main() {
int n,t;
cin>>n;
for(int i=0; i<n; i++) {
cin>>t;
m[t]++;
}
if(m.size()>3) {
cout<<"NO"<<endl;
} else {
int maxx=0,minn=1e9+1,midd=-1;
it=m.begin();
minn=it->first;
it++;
midd=it->first;
it++;
maxx=it->first;
if(m.size()==3 && (maxx-midd+minn)!=midd) {cout<<"NO"<<endl;}
else cout<<"YES"<<endl;
}
return 0;
}