题意:
一个i数组的每一位对一个数x取模,求最大的x使数组成为会问数组。不存在输出0.
分析:
如果数组两侧对应的数不相等,则可以对两个数的差取模,若想满足每一对数,则对所有绝对值得差取最大公约数。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll a[N];
ll gcd(ll a,ll b)
{
return b?gcd(b,a%b):a;
}
void solve()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int ans=0;
for(int i=0;i<n/2;i++)
{
int x=a[i];
int y=a[n-i-1];
if(x==y) continue;
int res=abs(x-y);
ans=gcd(ans,res);
}
cout<<ans<<'\n';
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}