Чтобы развить свои интеллектуальные способности, игроки команды Psych Up решили научиться собирать кубик Рубика.
Помучившись неделю и отчаявшись, команда решила собрать кубик Рубика попроще — 2 × 2 × 2. Но и эта затея не увенчалась успехом.
Тогда капитан команды Миша смастерил кубик ещё проще. Уж с ним-то не должно возникнуть проблем!
Новый кубик состоит из четырёх слоёв размера 4 × 4. Каждый слой выполнен из стекла и полностью прозрачен. Верхняя грань
каждого слоя разбита на 16 одинаковых квадратиков. Четыре из них окрашены в различные цвета: красный, жёлтый, синий, зелёный.
В центре каждого слоя сделано отверстие. Все слои через это отверстие надеты на твёрдый стержень так, что могут вращаться независимо друг от друга.
Кубик считается собранным, если он находится в одном из следующих состояний (вид сверху):
Собрать кубик было нелегко, однако команда Psych Up справилась с этой задачей. Но вам будет посложней!
Из заданного состояния соберите кубик, сделав минимальное число поворотов. Одним поворотом считается
поворот одного из слоёв на 90 градусов в любую сторону.
Исходные данные
На вход подаётся 4 строки по 4 целых числа — описание текущего состояния кубика (вид сверху).
Все числа лежат в диапазоне от 1 до 4 и обозначают цвета соответствующих квадратиков.
Различные числа обозначают различные цвета.
Результат
Выведите минимальное количество поворотов, необходимое для того, чтобы собрать кубик.
Пример
исходные данные | результат |
---|
2 1 2 3
1 1 2 2
4 4 3 3
1 4 3 4
| 1
|
Автор задачи: Денис Мухаметьянов
Источник задачи: Уральская региональная командная олимпиада по программированию 2011