|
Необычная сортировка
(Время: 1 сек. Память: 16 Мб Сложность: 55%)
Задан целочисленный массив A[1..N] из N различных чисел, в котором записана некоторая фиксированная перестановка чисел от 1 до N, и кроме того, ни одно число в нем изначально не находится на своем месте, то есть A[i] ≠ i для всех i=1..N.
Требуется отсортировать массив (упорядочить в нем элементы по возрастанию), при этом необходимо соблюдать следующие условия:
- Разрешается менять местами только два соседних элемента массива.
- Не разрешается изменять положение числа, которое уже находится на своем месте (A[i]=i).
Например, если массив из шести элементов в некоторый момент имеет вид [2, 1, 3, 6, 4, 5], то можно поменять местами 1 и 2, 6 и 4 или 4 и 5, а менять местами 1 и 3 или 3 и 6 нельзя, поскольку число 3 находится на своем месте (на позиции с номером 3).
Входные данные
Первая строка входного файла INPUT.TXT содержит целое число N – размер входного массива (2 ≤ N ≤ 100). Вторая строка содержит N целых чисел – исходную перестановку чисел от 1 до N в массиве. Изначально ни одно число не стоит на своем месте.
Выходные данные
В выходной файл OUTPUT.TXT выведите K строк, где K – количество обменов в сортировке. На каждой строке выведите по два числа xi и yi, разделенных пробелом – позиции в массиве, числа на которых следует поменять местами на i-ом обмене. Помните, что должно выполняться условие |xi–yi|=1 и что нельзя перемещать число, которое уже стоит на своем месте. Если существует несколько решений, то разрешается вывести любое из них. При этом нет ограничений на число обменов K и решение не обязательно должно быть оптимальным. Если же такого решения не существует, то следует вывести «impossible» (без кавычек) в любом регистре.
Пример
№ | INPUT.TXT | OUTPUT.TXT | Пояснение |
1 | 6 2 3 1 6 4 5 | 2 3 1 2 4 5 5 6 | 2 1 3 6 4 5 1 2 3 6 4 5 1 2 3 4 6 5 1 2 3 4 5 6 |
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
| |