题意:
给出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; }