Задачи
Алгоритм профессора Иванова
Алгоритм профессора Иванова
Профессор Иванов рассказал профессору Петрову, что придумал новый способ сортировки. В его основе лежит следующая функция \textbf{change}.
\textbf{function change(a: integer);}
\textbf{begin}
\textbf{for j := 0 to n - 1 do}
\textbf{begin}
\textbf{if p\[j\] = a then}
\textbf{k := j}
\textbf{end}
\textbf{swap(k, (k + p\[k\]) mod n);}
\textbf{end;}
Функция \textbf{swap(i, j)} меняет местами элементы массива \textbf{p_i} и \textbf{p_j}.
Профессор Иванов утверждает, что любой массив \textbf{p_0}, …, \textbf{p_\{n−1\}}, являющийся перестановкой целых чисел \textbf{1}, ..., \textbf{n}, можно упорядочить по возрастанию, несколько раз вызвав функцию \textbf{change}. Нужно только правильно подобрать для каждого вызова функции в качестве её аргумента \textbf{a} целое число в пределах от \textbf{1 }до \textbf{n}.
Профессор Петров верит коллеге, но он не очень хорошо понял, как работает алгоритм. Поэтому он предложил перестановку \textbf{p_0}, …, \textbf{p_\{n−1\}} и попросил профессора Иванова отсортировать её по возрастанию с помощью функции \textbf{change}.
\InputFile
В первой строке записано целое число \textbf{n }(\textbf{1 }≤ \textbf{n }≤ \textbf{500}). Во второй строке записаны целые числа \textbf{p_0}, …, \textbf{p_\{n−1\}} в пределах от \textbf{1 }до \textbf{n }- перестановка, предложенная профессором Петровым.
\OutputFile
Если профессор Иванов не сможет с помощью функции \textbf{change }отсортировать массив \textbf{p_0}, …, \textbf{p_\{n−1\}} по возрастанию, выведите "\textbf{Impossible}". В противном случае выведите в первой строке число \textbf{m} --- количество вызовов функции (\textbf{0 }≤ \textbf{m }≤ \textbf{10^6}). В следующих \textbf{m }строках выведите аргументы, которые нужно подавать на вход функции \textbf{change}. Гарантируется, что если массив можно отсортировать по возрастанию, то это можно сделать не более чем за \textbf{10^6} вызовов функции.
Входные данные #1
5 1 3 5 2 4
Выходные данные #1
37 1 1 2 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2