Сортировка Хакуна Матата
시간 제한2초메모리 제한1024 MB
1부터 n까지의 질량을 가진 곤충 순열이 주어질 때, 질량 차이가 1 이하인 두 원소를 교환하는 연산만으로 50000번 이하의 교환으로 정렬하는 수열을 출력한다.
문제
После веселой прогулки по африканской долине Тимон и Пумба решили пообедать. Для этого они достали из-под камня жуков, которые имеют различные целые массы от до и расставили их на ближайшем бревне. Чтобы обед прошел веселее, Пумба предложил есть жуков по возрастанию масс.
Чтобы отсортировать жуков по возрастанию масс, Тимон и Пумба используют сортировку Хакуна Матата. Суть сортировки заключается в том, что Тимон и Пумба выбирают жуков, отличающихся массой не более чем на единицу, после чего друзья меняют их местами. Например, если Пумба выбрал жука с массой 2, тогда Тимон может взять жука либо с массой 1, либо с массой 3. Так как друзья много раз пользовались этой сортировкой, им известно, что она всегда работает.
За всем этим процессом внимательно наблюдал Зазу. Он впервые видит нечто подобное, и ему интересно, как таким способом можно отсортировать жуков. Ваша задача --- написать программу, которая по изначальному расположению жуков выведет последовательность ходов для сортировки жуков по возрастанию масс.
입력
В самой первой строке написано число --- количество жуков(). Во второй строке заданы разделенных пробелами различных чисел (), которые обозначают массу жука с номером .
출력
Выведите на первой строчке выходного файла число --- количество ходов в возможной сортировке Хакуна Матата. На следующих строчках выведите последовательность ходов сортировки Хакуна Матата таким образом, чтобы на строчке с номером было выведено два числа и , что значит, что на шаге с номером Пумба взял жука стоящего на позиции , а Тимон на позиции . Выведите любой способ, количество операций в котором не превышает 50000.