eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Алгоритм профессора Иванова

Алгоритм профессора Иванова

Профессор Иванов рассказал профессору Петрову, что придумал новый способ сортировки. В его основе лежит следующая функция \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 секунда
Лимит использования памяти 64 MiB
Входные данные #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
Автор О.Соболева, Д.Дублённых
Источник 2013 Петрозаводск, Зима, Контест Уральского университета, Кубок Контура, Задача H