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

Задача . C. Прелестные перевороты


У вас есть перестановка — массив \(a = [a_1, a_2, \ldots, a_n]\) из различных целых чисел от \(1\) до \(n\). Длина перестановки \(n\) нечётна.

Вам нужно отсортировать её по возрастанию.

За один шаг вы можете выбрать любой префикс перестановки, имеющий нечётную длину, и перевернуть его. Формально, если \(a = [a_1, a_2, \ldots, a_n]\), вы можете выбрать любое нечётное целое число \(p\) от \(1\) до \(n\) включительно и сделать \(a\) равной \([a_p, a_{p-1}, \ldots, a_1, a_{p+1}, a_{p+2}, \ldots, a_n]\).

Найдите способ отсортировать перестановку \(a\), используя не более \(\frac{5n}{2}\) переворотов такого рода, или определите, что такого способа не существует. Минимизировать число переворотов не нужно.

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

Во входных данных находятся несколько наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \le t \le 100\)) — количество наборов входных данных. Далее следуют наборы входных данных.

Первая строка набора входных данных содержит одно целое число \(n\) (\(3 \le n \le 2021\); \(n\) нечётно) — длину перестановки.

Вторая строка содержит \(n\) различных целых чисел \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le n\)) — саму перестановку.

Гарантируется, что сумма значений \(n\) по всем наборам входных данных не превосходит \(2021\).

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

Для каждого набора входных данных, если невозможно отсортировать заданную перестановку, используя не более \(\frac{5n}{2}\) шагов, выведите одно целое число \(-1\).

В противном случае выведите целое число \(m\) (\(0 \le m \le \frac{5n}{2}\)) — число переворотов в вашей последовательности шагов, и \(m\) целых чисел \(p_i\) (\(1 \le p_i \le n\); \(p_i\) нечётно) — длины префиксов \(a\), которые нужно перевернуть, в хронологическом порядке.

Обратите внимание, что \(m\) минимизировать не нужно. Если существует несколько решений, выведите любое из них.

Примечание

В первом наборе входных данных перестановка уже отсортирована. Любое чётное число переворотов префикса длины \(3\) не влияет на этот факт.

Во втором наборе входных данных после переворота префикса длины \(3\) перестановка станет равна \([5, 4, 3, 2, 1]\), и далее после переворота префикса длины \(5\) перестановка станет равна \([1, 2, 3, 4, 5]\).

В третьем наборе входных данных перестановку отсортировать невозможно.


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

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

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