📄 pku2769.cpp
字号:
#include <stdio.h>
#include <memory.h>
#define maxn 1000000
int N;
int a[300];
int stack[300];
int top;
char v[maxn];
char c[maxn];
int abs(int x){return x > 0 ? x : -x;}
int check(int x)
{
int i, tmp;
while (top > 0)
v[stack[--top]] = 0;
for (i = 0; i < N; i++)
{
tmp = a[i] % x;
if (v[tmp])
return 0;
v[tmp] = 1;
stack[top++] = tmp;
}
return 1;
}
void Solve()
{
int i, j;
int p;
for (i = 0; i < N; i++)
scanf("%d", a + i);
memset(c, 0, sizeof(c));
memset(v, 0, sizeof(v));
for (i = 0; i < N; i++)
for (j = i + 1; j < N; j++)
c[abs(a[i] - a[j])] = 1;
top = 0;
p = N;
while (1)
{
if (!c[p])
if (check(p))
{
printf("%d\n", p);
return;
}
p++;
}
}
int main()
{
int T;
scanf("%d", &T);
while (T-- && EOF != scanf("%d", &N) && N)
Solve();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -