CF1758C Almost All Multiples

题目描述

给定两个整数 $n$ 和 $x$,长度为 $n$ 的排列 $p$ 被称为“有趣排列”,如果对于所有 $1 \leq i \leq n-1$,都有 $p_i$ 是 $i$ 的倍数,且 $p_n = 1$,并且 $p_1 = x$。 请找出字典序最小的有趣排列,或者报告不存在这样的排列。 一个长度为 $n$ 的排列是一个包含 $1$ 到 $n$ 的每个整数恰好一次的数组。 设 $a$ 和 $b$ 是长度为 $n$ 的两个排列。如果在第一个不同的位置 $i$,有 $a_i < b_i$,则称 $a$ 的字典序小于 $b$。如果一个排列的字典序小于所有其它排列,则称其为字典序最小的排列。

输入格式

输入包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来每个测试用例一行,包含两个整数 $n$ 和 $x$($2 \leq n \leq 2 \cdot 10^5$;$1 < x \leq n$)。 所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,如果存在答案,输出 $n$ 个互不相同的整数 $p_1, p_2, \dots, p_n$($1 \leq p_i \leq n$),表示字典序最小的有趣排列 $p$。否则输出 $-1$。

说明/提示

在第一个测试用例中,排列 $[3,2,1]$ 满足所有条件:$p_1=3$,$p_3=1$,并且: - $p_1=3$ 是 $1$ 的倍数。 - $p_2=2$ 是 $2$ 的倍数。 在第二个测试用例中,排列 $[2,4,3,1]$ 满足所有条件:$p_1=2$,$p_4=1$,并且: - $p_1=2$ 是 $1$ 的倍数。 - $p_2=4$ 是 $2$ 的倍数。 - $p_3=3$ 是 $3$ 的倍数。 可以证明这些排列是字典序最小的。 第三个测试用例中不存在这样的排列。 由 ChatGPT 4.1 翻译