#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[5005];
map<int,int>mp;
signed main()
{
cin>>n;srand(time(0));
for(int i=1;i<=n;i++) cin>>a[i];
int _=200;
while(_--)
{
int x,y;x=rand()*rand()%n+1,y=rand()*rand()%n+1;
while(x==y) y=rand()%n+1;
for(int i=1;i*i<=abs(a[x]-a[y]);i++)
{
if(abs(a[x]-a[y])%i) continue;
if(i>2)
{
for(int j=1;j<=n;j++)
{
// if(i==0) while(1) puts("-1");
mp[a[j]%i]++;
if(mp[a[j]%i]*2>n) return cout<<i<<"\n",0;
}
mp.clear();
}
if(abs(a[x]-a[y])>2*i)
{
for(int j=1;j<=n;j++)
{
mp[a[j]%(abs(a[x]-a[y])/i)]++;
if(mp[a[j]%(abs(a[x]-a[y])/i)]*2>n) return cout<<(abs(a[x]-a[y])/i)<<"\n",0;
}
mp.clear();
}
}
}
puts("-1");
}
RT,删除所有 map 相关操作后不会 RE,不懂了