CF1857C Assembly via Minimums

题目描述

Sasha 有一个长度为 $n$ 的整数数组 $a$。他感到无聊,于是对于所有 $i, j$($i < j$),他都写下了 $a_i$ 和 $a_j$ 的最小值。这样他得到了一个新数组 $b$,其长度为 $\frac{n\cdot (n-1)}{2}$。 例如,如果 $a = [2, 3, 5, 1]$,他会写下 $[\min(2, 3), \min(2, 5), \min(2, 1), \min(3, 5), \min(3, 1), \min(5, 1)] = [2, 2, 1, 3, 1, 1]$。 然后,他随机打乱了数组 $b$ 的所有元素。 不幸的是,他忘记了原数组 $a$,你的任务是还原出任意一个可能的数组 $a$,使得数组 $b$ 可以由它得到。 数组 $a$ 的元素应满足 $[-10^9, 10^9]$ 的范围。

输入格式

第一行包含一个整数 $t$($1 \le t \le 200$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($2 \le n \le 10^3$),表示数组 $a$ 的长度。 每个测试用例的第二行包含 $\frac{n\cdot (n-1)}{2}$ 个整数 $b_1, b_2, \dots, b_{\frac{n\cdot (n-1)}{2}}$($-10^9 \le b_i \le 10^9$),表示数组 $b$ 的元素。 保证所有测试用例中 $n$ 的总和不超过 $10^3$,且每个测试用例中的数组 $b$ 都存在原始数组 $a$。

输出格式

对于每个测试用例,输出任意一个长度为 $n$ 的数组 $a$,使得数组 $b$ 可以由它得到。

说明/提示

在第一个样例中,Sasha 选择的数组为 $[1, 3, 3]$,则数组 $b$ 为 $[\min(a_1, a_2)=1, \min(a_1, a_3)=1, \min(a_2, a_3)=3]$,打乱后可能为 $[1, 3, 1]$。 在第二个样例中,只有一对元素,因此数组 $[10, 10]$ 是合适的。另一个合适的数组可以是 $[15, 10]$。 由 ChatGPT 4.1 翻译