Задача №1231. D++
Мальчик Кирилл недавно придумал свой язык программирования. Он назвал его D++.
В D++ существует только один массив и 26 переменных. Переменные называются маленькими латинскими буквами от a до z. Есть 4 различных варианта операции присваивания (здесь и далее переменная — это маленькая латинская буква, задающая имя переменной, а индекс — натуральное число, задающее индекс элемента в массиве):
переменная1 <- переменная2
Значение переменной переменная1 становится равным значению переменной переменная2;
переменная <- индекс
Значение переменной переменная становится равным значению элемента массива с индексом индекс;
индекс <- переменная
Значение элемента массива с индексом индекс становится равным значению переменной переменная;
индекс1 <- индекс2
Значение элемента массива с индексом индекс1 становится равным значению элемента массива с индексом индекс2.
Других операций в языке D++ нет. В одной строке программы на D++ может быть записана только одна операция. В программе не может быть пустых строк, но могут быть незначащие пробелы.
Дана последовательность из N натуральных чисел. Все числа различны и не превосходят N. Будем считать, что эта последовательность записана в массиве языка D++ начиная с элемента с номером 1. Требуется написать программу на D++, которая упорядочит массив за наименьшее количество операций.
После выполнения программы последовательность также должна быть записана в массиве начиная с элемента с номером 1. Программа не должна использовать элементы массива с номерами меньше 1, а также с номерами больше N.
В первой строке входного файла содержится единственное число N (1N10000). Во второй строке содержится N натуральных чисел — последовательность, записанная в массиве.
Выходной файл должен содержать программу на D++, которая сортирует данную последовательность, выполняя наименьшее число операций присваивания.
2 2 1
3