Уважаемое время прохождения педантов означает, что картины "Кубиков Рубика" (на футболках, плакатах и т. Д.) На самом деле не разрешимы.
Первое, что следует проверить, это то, что куб состоит из правильных частей. Чтобы быть разрешимым, кубу нужно шесть цветов каждый с девятью квадратами. Кубу также необходимо, чтобы каждый край и угловая единица (это кубы меньшего размера, составляющие куб) были уникальными. Мало того, что они должны быть уникальными, но если две центральные части расположены напротив друг друга, ни одна из краев или угловых частей не может содержать оба этих цвета.
Если у вас есть куб, состоящий из всех правильных частей, вам все еще нужно убедиться, что он может быть решен. Здесь есть пара правил, поэтому я опрошу эксперта, чтобы объяснить их, спойлер ниже объясняет, как мы можем это сделать. Если вы заинтересованы в решении проблемы самостоятельно, вам не нужно посещать сайт, чтобы понять или принять участие в этой задаче.
Ваша задача - взять шаблон в качестве входных данных и определить, является ли он на самом деле решаемым кубиком Рубика. Чтобы быть разрешимым, должен быть способ выполнения допустимых перемещений куба, чтобы куб имел только один цвет на каждой грани (а разные грани имели разные цвета). Большинство кубиков Рубика имеют стандартную раскраску (белый напротив желтого и т. Д.), Вы не можете предполагать, что состояние разрешения следует за этой конкретной раскраской.
Действительным движением является вращение одной или нескольких граней куба по часовой стрелке или против часовой стрелки. При вращении грани куба все квадраты, граничащие с гранью, также вращаются, оставаясь на связи с гранью, которой они ранее касались.
IO
Вы можете взять куб любым разумным способом. Если у вашего языка есть какой-то встроенный тип «кубическое лицо», подходящий для ввода, который отлично подходит для ввода, в противном случае вы можете взять двумерный массив сети куба, 1 3 на 3 списка для каждого лица. Просто будь разумным. Если вы хотите узнать, является ли определенный формат приемлемым, прокомментируйте или напишите мне в чате, и я добавлю к запросу, чтобы заявить о его действительности.
Ваш входной формат должен поддерживать только до 9 возможных цветов.
Для вывода это проблема решения, поэтому вы должны вывести одно постоянное значение для «Да, это действительный кубик Рубика» и одно другое постоянное значение для «Нет, это не допустимый куб Рубика».
Это код-гольф, поэтому ответы будут оцениваться в байтах, причем меньше байтов будет лучше.
Тестовые случаи
Вот тестовые случаи. Они отформатированы как сеть куба с каждым квадратом в виде одной буквы. Разные буквы представляют разные цвета. Любые дополнительные тестовые случаи могут быть добавлены по запросу.
разрешимый
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YYY
YYY
YYY
GRR
GRR
ORW
WWRBWYBOOGGY
GGRBWGYBBOOO
OOGRWGYWWRBB
WYO
YYB
YYB
неразрешимый
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWYWBBBOOO
YWY
YYY
YYY
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YWY
YYY
YYY
RRR
RRR
GGG
GGYWYWRBBOBO
GGYWWWROBOOO
GGYWWWRBBOOO
BBB
YWY
YYY
RRW
RRW
GGG
GGYWWYEOBROO
GGYWWYEBBROO
GGOWWYWBBROO
BBB
YYW
YYO