Олимпиадный тренинг

Задача . B. Перестановка


Напомним, что перестановка длины \(n\) — это массив, в котором каждый элемент от \(1\) до \(n\) встречается ровно один раз.

Для фиксированного целого положительного числа \(d\) назовем ценой перестановки \(p\) длины \(n\) количество таких индексов \(i\) \((1 \le i < n)\), что \(p_i \cdot d = p_{i + 1}\).

Например, если \(d = 3\), а \(p = [5, 2, 6, 7, 1, 3, 4]\), то цена такой перестановки равна \(2\), т.к. \(p_2 \cdot 3 = p_3\) и \(p_5 \cdot 3 = p_6\).

Ваша задача — для заданного \(n\) найти перестановку длины \(n\) и значение \(d\), что цена перестановки максимально возможная (среди всех способов выбрать перестановку и значение \(d\)). Если оптимальных ответов несколько — выведите любой.

Входные данные

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 500\)) — количество наборов входных данных.

Единственная строка каждого набора содержит одно целое число \(n\) (\(2 \le n \le 2 \cdot 10^5\)).

Cумма \(n\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

Выходные данные

Для каждого набора входных данных в первой строке выведите значение \(d\), а второй строке \(n\) целых чисел — саму перестановку. Если оптимальных ответов несколько — выведите любой.


Примеры
Входные данныеВыходные данные
1 2
2
3
2
1 2
3
2 1 3

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя