Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки

HotLog


 

Необычная сортировка

(Время: 1 сек. Память: 16 Мб Сложность: 55%)

Задан целочисленный массив A[1..N] из N различных чисел, в котором записана некоторая фиксированная перестановка чисел от 1 до N, и кроме того, ни одно число в нем изначально не находится на своем месте, то есть A[i] ≠ i для всех i=1..N.

Требуется отсортировать массив (упорядочить в нем элементы по возрастанию), при этом необходимо соблюдать следующие условия:

  1. Разрешается менять местами только два соседних элемента массива.
  2. Не разрешается изменять положение числа, которое уже находится на своем месте (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.TXTOUTPUT.TXTПояснение
16
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

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2007 / 2008 1 тур
 2007 / 2008 2 тур
 2007 / 2008 3 тур
 2008 / 2009 1 тур
 2008 / 2009 2 тур
 2008 / 2009 3 тур
 2009 / 2010 1 тур
 2009 / 2010 2 тур
 2009 / 2010 3 тур
 2010 / 2011 1 тур
 2010 / 2011 2 тур
 2010 / 2011 3 тур
 2011 / 2012 1 тур
 2011 / 2012 2 тур
 2011 / 2012 3 тур
 2012 / 2013 1 тур
 2012 / 2013 2 тур
 2012 / 2013 3 тур
 2013 / 2014 7-8 классы
 2013 / 2014 9-11 классы
 2014 / 2015 7-8 классы
 2014 / 2015 9-11 классы
 2015 / 2016 7-8 классы
 2015 / 2016 9-11 классы
 2016 / 2017 7-8 классы
 2016 / 2017 9-11 классы
 2017 / 2018 7-8 классы
 2017 / 2018 9-11 классы
 2018 / 2019 7-8 классы
 2018 / 2019 9-11 классы
 2019 / 2020 7-8 классы
 2019 / 2020 9-11 классы
 2020 / 2021 7-8 классы
 2020 / 2021 9-11 классы
 2021 / 2022 7-8 классы
 2021 / 2022 9-11 классы
 A. Отгадай число
 B. Ёлки
 C. Отпуск
 D. Получи ноль
 E. Необычная сортировка

Красноярский краевой Дворец пионеров, (c)2006 - 2022, E-mail: admin@acmp.ru