CF2234A Euclid, Sequence and Two Numbers
题目描述
我们定义两个正整数 $x \geq y$ 的长度为 $k$($k \geq 2$)的“Euclid 算法序列”为以下正整数序列:
- $a_1, a_2, \ldots, a_k$,其中 $a_1 = x$,$a_2 = y$,并且对于任意 $i$($1 \leq i \leq k - 2$),都有 $a_{i + 2} = (a_i \bmod a_{i + 1})^{\text{∗}}$。
例如,当 $x = 13, y = 8, k = 4$ 时,相应的 Euclid 算法序列为 $a = [13, 8, 5, 3]$($a_3 = 13 \bmod 8 = 5$,$a_4 = 8 \bmod 5 = 3$)。
现在给你一个序列 $b_1, b_2, \ldots, b_n$。你需要判断能否对 $b$ 的元素重新排列,使其成为某一对正整数 $x \geq y$ 的 Euclid 算法序列。
$^{\text{∗}}$ $x \bmod y$ 表示 $x$ 除以 $y$ 的余数。
输入格式
每个测试点包含多组测试用例。第一行为测试用例数量 $t$($1 \leq t \leq 500$)。接下来是每组测试用例的描述。
每组测试用例的第一行为整数 $n$($2 \leq n \leq 100$)——即序列的长度。
第二行为 $n$ 个整数 $b_1, b_2, \ldots, b_n$($1 \leq b_i \leq 10^9$)——给定的序列 $b$。
输出格式
对于每组测试用例,如果存在一种排列方式,使得序列 $b$ 可以成为某一对正整数 $x \geq y$ 的 Euclid 算法序列,则输出一组可行的 $x, y$,每组占一行。
如果不存在,则输出 $-1$,占一行。
如果存在多组可行的 $x, y$,你可以输出任意一组。
说明/提示
在第一个测试用例中,$(1, 1)$ 是可行的:当 $x = 1, y = 1, k = 2$ 时,$a_1 = x = 1, a_2 = y = 1$,Euclid 序列 $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$。
由 ChatGPT 5 翻译