[R75D]频道校准 - 代码源竞赛平台
时空限制
2S/256M
题目描述
校准中心收到 n 台设备的互不相同的正整数编号 a1,a2,…,an,其中 n 为偶数。
中心需要选择一个正整数频道周期 d。编号为 ai 的设备会进入编号除以 d 后所得余数对应的频道。
为了让每个启用的频道都由两台设备互相校验,要求每个实际出现的余数都恰好出现两次。满足要求的 d 称为合法频道周期。
请你求出最大的合法 d;如果不存在合法的 d,输出 -1。
格式
输入格式
第一行包含一个整数 n。
第二行包含 n 个整数 a1,a2,…,an。
输出格式
输出一个整数,表示最大的合法频道周期;如果不存在,输出 -1。
样例
样例输入 #1
4
1 4 7 10
样例输出 #1
6
样例解释 #1
对 6 取余后得到 (1,4,1,4),两个启用频道中都恰有两台设备;不存在更大的合法频道周期。
样例输入 #2
4
1 2 3 5
样例输出 #2
-1
样例解释 #2
可以验证,不存在满足要求的正整数频道周期。
数据规模
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 |
分数 |
n≤ |
特殊性质 |
| 1 |
20 |
14 |
无 |
| 2 |
30 |
200 |
特殊性质 A |
| 3 |
50 |
无 |
特殊性质 A:对于所有 1≤i≤n,均有 ai≤105。
对于 100% 的数据,满足 2≤n≤200 且 n 为偶数,1≤ai≤109,并且所有 ai 互不相同。