CF2039D Shohag Loves GCD

题目描述

Shohag 拥有一个整数 $n$ 和一个包含 $m$ 个不同整数的集合 $S$。请帮助他找到字典序最大*的整数数组 $a_1, a_2, \ldots, a_n$,使得对于每个 $1 \le i \le n$ 有 $a_i \in S$ ,并且满足对所有 $1 \le i < j \le n$ 有 $a_{\gcd(i, j)} \neq \gcd(a_i, a_j)$†,或者说明不存在这样的数组。 *一个数组 $a$ 如果在第一个不同的位置上比数组 $b$ 有更大的元素,则称其为字典序大于数组 $b$(假设两个数组长度相同)。 †$\gcd(x, y)$ 表示整数 $x$ 和 $y$ 的[最大公约数(GCD)](https://en.wikipedia.org/wiki/Greatest_common_divisor)。

输入格式

第一行包含一个整数 $t$ ($1 \le t \le 10^4$) — 测试用例的数量。 每个测试用例的第一行包含两个整数 $n$ 和 $m$ ($1 \le m \le n \le 10^5$)。 每个测试用例的第二行包含 $m$ 个按递增顺序排列的不同整数,表示集合 $S$ 的元素 ($1 \le x \le n$ 对于每个 $x \in S$)。 保证所有测试用例中 $n$ 的总和不超过 $3 \cdot 10^5$。

输出格式

对于每个测试用例,如果无解则输出 $-1$,否则输出 $n$ 个整数 —— 满足条件的字典序最大的整数数组。

说明/提示

在第一个测试用例中,数组中的每个元素都属于给定的集合 $S = \{3, 4, 6\}$,并且数组的所有索引对都满足必要的条件。特别是对于对 $(2, 3)$,有 $a_{\gcd(2, 3)} = a_1 = 6$ 而 $\gcd(a_2, a_3) = \gcd(4, 4) = 4$,因此它们不相等。尽管存在其他满足条件的数组,但这个是其中字典序最大的。 在第三个测试用例中,由于我们只能使用数组 $a = [2, 2]$,但对于该数组,对于对 $(1, 2)$,有 $a_{\gcd(1, 2)} = a_1 = 2$ 而 $\gcd(a_1, a_2) = \gcd(2, 2) = 2$,因此它们相等,这是不允许的!所以没有解决方案。