Это сложная версия задачи. Отличие между версиями заключается в том, что в этой версии $$$1 \le i \le n-1$$$. Обратите внимание, что верное решение для сложной версии не обязательно является верным решением для простой версии.
Дано натуральное число $$$n$$$. Найдите такую перестановку$$$^{\text{∗}}$$$ $$$p$$$ длины $$$n$$$, что для каждого $$$i$$$ ($$$\style{color:red}{1 \le i \le n-1}$$$) существует такое $$$j$$$ ($$$\style{color:red}{i \le j \le n}$$$), что $$$p_i = p_j \oplus i$$$ $$$^{\text{†}}$$$, или определите, что такой не существует.
$$$^{\text{∗}}$$$Перестановкой длины $$$n$$$ является массив, состоящий из $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$ в произвольном порядке. Например, $$$[2,3,1,5,4]$$$ — перестановка, но $$$[1,2,2]$$$ не перестановка ($$$2$$$ встречается в массиве дважды) и $$$[1,3,4]$$$ тоже не перестановка ($$$n=3$$$, но в массиве встречается $$$4$$$).
$$$^{\text{†}}$$$$$$\oplus$$$ обозначает операцию побитового исключающего ИЛИ.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Единственная строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$3 \leq n \leq 2 \cdot 10^5$$$) — длину перестановки.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2\cdot 10^5$$$.
Для каждого набора входных данных, если существует подходящая перестановка, выведите $$$n$$$ целых чисел $$$p_1,p_2,\ldots,p_n$$$ — перестановку $$$p$$$. Иначе выведите $$$-1$$$.
Если существует несколько решений, вы можете вывести любое из них.
234
2 1 3 -1
В первом наборе входных данных перестановка $$$p = [2,1,3]$$$ подходит, поскольку $$$p_2 = 1$$$ и $$$p_3 \oplus 2 = 1$$$.
Во втором наборе входных данных не существует подходящей перестановки.