printРабочее место участника

printЗадачи

864. Головоломка

Ограничения: время – 6s/12s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Головоломка состоит из 10 деталей, обозначенных числами от 1 до 10. Начальное состояние головоломки показано на рис. 1.
4805.png
Рис. 1. Начальное состояние
Можно поворачивать левую часть головоломки из 7 деталей (1, 2, 4, 5, 6, 8, 9) на 60 градусов по или против часовой стрелки, либо таким же образом правую часть (2, 3, 5, 6, 7, 9, 10). Например, после поворота левой части против часовой стрелки из начального состояния получается состояние, показанное на рис. 2.
4804.png
Рис.2. После поворота левой части головоломки
Напишите программу, которая определяет с помощью какой минимальной последовательности ходов можно получить из начального состояния некоторое заданное.
Ввод содержит 3 строки, содержащих перестановку целых чисел от 1 до 10 – требуемое состояние головоломки.
Вывод содержит в первой строке одно целое минимальное число ходов. Во второй строке указывается последовательность ходов. Ход "L+" означает поворот левой части по часовой стрелке, "L-" – поворот левой части против часовой стрелки, "R+" – поворот правой части по часовой стрелке, "R-" – поворот правой части против часовой стрелки. Если существует несколько минимальных последовательностей, можно вывести любую из них.

Пример ввода

 2 5 6
1 8 9 3
 4 10 7

Пример вывода

2
L- R+
loading