#CF2234A. 欧几里得、序列与两个数 / Euclid, Sequence and Two Numbers

欧几里得、序列与两个数 / Euclid, Sequence and Two Numbers

题目描述

对于两个正整数 xyx \geq y,定义其长度为 kkk2k \geq 2)的欧几里得算法序列为以下正整数序列:

  • a1,a2,,aka_1, a_2, \ldots, a_k,其中 a1=xa_1 = xa2=ya_2 = y,且对于任意 ii1ik21 \leq i \leq k - 2),满足 ai+2=(aimodai+1)a_{i+2} = (a_i \bmod a_{i+1})

例如,对于 x=13,y=8,k=4x = 13, y = 8, k = 4,对应的欧几里得算法序列为 a=[13,8,5,3]a = [13, 8, 5, 3]a3=13mod8=5a_3 = 13 \bmod 8 = 5a4=8mod5=3a_4 = 8 \bmod 5 = 3)。

给定一个序列 b1,b2,,bnb_1, b_2, \ldots, b_n,判断是否可以重排其元素,使其成为某两个正整数 xyx \geq y 的欧几里得算法序列。

xmodyx \bmod y 表示 xx 除以 yy 的余数。

输入格式

每个测试包含多组测试数据。第一行包含测试数据组数 tt1t5001 \le t \le 500)。接下来是每组测试数据的描述。

每组测试数据的第一行包含一个整数 nn2n1002 \leq n \leq 100),表示序列的长度。

每组测试数据的第二行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n1bi1091 \leq b_i \leq 10^9),表示序列 bb

输出格式

对于每组测试数据,如果可以重排序列 bb 的元素使得存在合适的正整数对 xyx \geq y,则在一行中输出 x,yx, y。否则,在一行中输出 1-1

如果有多个合适的数对 x,yx, 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)(1, 1) 是合适的:当 x=1,y=1,k=2x = 1, y = 1, k = 2 时,a1=x=1,a2=y=1a_1 = x = 1, a_2 = y = 1,得到序列 a=[1,1]=ba = [1, 1] = b

在第三个测试数据中,可以证明不存在合适的数对 (x,y)(x, y)

在第四个测试数据中,数对 (6,4)(6, 4) 是合适的:当 x=6,y=4,k=3x = 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]=ba = [6, 4, 2] = b