题意:
给出n,接下来n个数字,问是否可以找到一个数字x,使得这些n个数 中某些数+x 某些数-x 可以使得n个数字相同
思路:
三个数字以上显然不同。
两个数字必定可以,一个数字也可以。
讨论三种数字的情况,如果 a1 - a 2 == 1a
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[100010];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
int tep1=a[1],tep2,tep3,tep4;
int cot=1;
for(int i=2;i<=n;i++)
{
if(a[i]!=a[i-1])
{
cot++;
if(cot==2)
{
tep2=a[i];
}
if(cot==3)
{
tep3=a[i];
}
}
}
if(cot>3)
{
cout<<"NO"<<endl;
}
else
{
if(cot==3)
{
if(tep3-tep2!=tep2-tep1)
{
cout<<"NO"<<endl;
return 0;
}
}
cout<<"YES"<<endl;
}
return 0;
}