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 翻译