题目描述
对于两个正整数 x≥y,定义其长度为 k(k≥2)的欧几里得算法序列为以下正整数序列:
- a1,a2,…,ak,其中 a1=x,a2=y,且对于任意 i(1≤i≤k−2),满足 ai+2=(aimodai+1)。
例如,对于 x=13,y=8,k=4,对应的欧几里得算法序列为 a=[13,8,5,3](a3=13mod8=5,a4=8mod5=3)。
给定一个序列 b1,b2,…,bn,判断是否可以重排其元素,使其成为某两个正整数 x≥y 的欧几里得算法序列。
xmody 表示 x 除以 y 的余数。
输入格式
每个测试包含多组测试数据。第一行包含测试数据组数 t(1≤t≤500)。接下来是每组测试数据的描述。
每组测试数据的第一行包含一个整数 n(2≤n≤100),表示序列的长度。
每组测试数据的第二行包含 n 个整数 b1,b2,…,bn(1≤bi≤109),表示序列 b。
输出格式
对于每组测试数据,如果可以重排序列 b 的元素使得存在合适的正整数对 x≥y,则在一行中输出 x,y。否则,在一行中输出 −1。
如果有多个合适的数对 x,y,输出任意一个均可。
6
2
1 1
2
1 2
4
1 2 3 4
3
6 4 2
4
3 8 13 5
3
1 1 1
1 1
2 1
-1
6 4
13 8
-1
提示
在第一个测试数据中,数对 (1,1) 是合适的:当 x=1,y=1,k=2 时,a1=x=1,a2=y=1,得到序列 a=[1,1]=b。
在第三个测试数据中,可以证明不存在合适的数对 (x,y)。
在第四个测试数据中,数对 (6,4) 是合适的:当 x=6,y=4,k=3 时,$a_1 = x = 6, a_2 = y = 4, a_3 = (a_1 \bmod a_2) = (6 \bmod 4) = 2$,得到序列 a=[6,4,2]=b。