CF2225G Simple Problem
题目描述
有一天,Polycarp 想出了一个简单的问题:给定数字 $0, 1, \ldots, n-1$。是否可以将它们排列,使得每一对相邻数字的绝对差能够被至少一个数 $k_1, k_2, \ldots, k_m$ 整除?
Polycarp 思考了很久该如何解决这个问题,最终发现其实并没有那么简单。请你帮他解决这个问题。
输入格式
每个测试点包含多组测试用例。第一行包含测试用例个数 $t$($1 \le t \le 10^3$)。每组测试用例的描述如下:
每个测试用例的第一行包含两个整数 $n$ 和 $m$($3 \leq n \leq 5 \cdot 10^{3}$;$1 \leq m \leq 10$)。
接下来一行包含 $m$ 个整数 $k_{i}$($1 \leq k_i \leq \left\lfloor \frac{n}{3} \right\rfloor$)。
另外,所有测试用例中 $n$ 的总和不超过 $5 \cdot 10^{3}$。
输出格式
对于每个测试用例,输出以下结果之一:
- 如果不存在合适的排列,则在一行内输出 -1。
- 否则输出 $n$ 个整数 $0, 1, \ldots, n-1$ 的一种排列,满足题目条件。如果有多种符合条件的排列,输出其中任意一种即可。
说明/提示
由 ChatGPT 5 翻译