CF1826B的题解

(一)

如果 \(x\bmod n=y\bmod n\),那么 \(|x-y|\)\(n\) 的倍数。

所以这道题就变成了找没对数的差的最大公因数。

(二)

AC 代码。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,a[100001];
signed main(){
	scanf("%lld",&t);
	while(t--){
		scanf("%lld",&n);
		for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
		int ans=abs(a[n]-a[1]);
		for(int i=2;i<=n/2;i++)ans=__gcd(ans,abs(a[i]-a[n-i+1]));
		printf("%lld\n",ans);
	}
	return 0;
}
posted @ 2024-03-28 08:22  Jerry_heng  阅读(8)  评论(0)    收藏  举报