Почитаний час проходження педантів повинен зазначити, що малюнки «Кубики Рубіка» (на футболках, плакатах тощо) насправді не вирішуються.
Перше, що слід перевірити, це те, що куб складається з правильних шматочків. Щоб вирішити куб, потрібно шість кольорів з дев'ятьма квадратами. Кубі також потрібні кожен край і кутовий блок (це менші куби, які складають куб), щоб бути унікальними. Вони не тільки повинні бути унікальними, але якщо дві центральні частини розташовані один проти одного, жоден край або кутовий шматок не можуть містити обох цих кольорів.
Коли у вас є кубик, який складається з усіх правильних шматочків, вам все ще потрібно перевірити, чи він може бути вирішеним. Тут є кілька правил, тому я відправлюсь до експерта, щоб пояснити їх, спойлер нижче пояснює, як ми можемо це зробити. Якщо ви зацікавлені у вирішенні проблеми самостійно, вам не потрібно відвідувати сайт, щоб зрозуміти чи брати участь у цьому виклику.
Ваше завдання - взяти шаблон як вхідний і визначити, чи це насправді вирішальний куб Рубіка. Щоб бути вирішеним, повинен бути спосіб виконувати дійсні рухи на кубі, щоб куб мав лише один колір на кожній грані (а різні грані мали різні кольори). Більшість кубиків Рубіка мають стандартне забарвлення (білий - навпроти жовтого тощо). Ви можете не припускати, що стан розв’язання відповідає саме цьому забарвленню.
Дійсний хід - або обертання однієї грані куба за годинниковою стрілкою, або проти годинникової стрілки. При обертанні грані куба обертаються також будь-які квадрати, що межують з обличчям, залишаючись з'єднаними з обличчям, якого вони раніше торкалися.
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