#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int s[105],dp[105];
int main(){
ll t;
cin>>t;
while(t--){
int s1,ss,z=0;
map<int,int>mp;
cin>>s1;
for(int i=0;i<s1;i++){
cin>>ss;
if(!mp[ss])s[z++]=ss;//去重,用数组存
mp[ss]++;
}
if(z==1)cout<<-1<<endl;//如果去重只有一个,那么就是-1
else{
sort(s,s+z);//排序
for(int i=0;i<z-1;i++){//找出俩俩差值
dp[i]=s[i+1]-s[i];
}
int ans=dp[0];
for(int i=1;i<z-1;i++){//求差值的最大公因数 __gcd可以直接求2个数的公因数
ans=__gcd(ans,dp[i]);
}
cout<<ans<<endl;
}
}
return 0;
}
Codeforces Round #748 (Div. 3)D1. All are Same[暴力]
最新推荐文章于 2024-09-10 15:28:21 发布