用gcd解决;
而且不用一个一个减,直接模;
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main()
{
int T;
cin>>T;
while (T--)
{
int n, a, b;
cin >> n >> a >> b;
if (a > b)
swap(a, b);
int d = gcd(a, b);
vector<int>arr(n);
for (int i = 0; i < n; i++)
{
cin >> arr[i];
arr[i] %= d;
}
sort(arr.begin(), arr.end());
int res = arr[n - 1] - arr[0];
for (int i = 0; i < n-1; i++)
{
res = min(res, arr[i] + d - arr[i + 1]);
}
cout << res << endl;
}
}