思路:暴力枚举
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=1e6-1;
int SIN[305],maxn;
bool vis[N+1];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int g;
scanf("%d",&g);
maxn=0;
for(int i=1;i<=g;i++)
{
scanf("%d",&SIN[i]);
if(SIN[i]>maxn)
maxn=SIN[i];
}
for(int i=g;i<=maxn+1;i++)//枚举到maxn+1,因为0和maxn%i的结果相同
{
fill(vis,vis+i+1,false);//前闭后开,用memset,会超时
int f=1;
for(int j=1;j<=g;j++)
{
int tmp=SIN[j]%i;
if(vis[tmp])
{
f=0;
break;
}
else
vis[tmp]=true;
}
if(f==1)
{
printf("%d\n",i);
break;
}
}
}
return 0;
}