Напишіть найкоротшу програму, яка вирішує кубик Рубіка (3 * 3 * 3) протягом розумного часу та рухається (скажімо, максимум 5 секунд на вашій машині та менше 1000 рухів).
Вхід у форматі:
UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR
(саме цей вхід представляє вирішений куб).
Перші 12 рядків із 2 символів - це краї в положеннях UF, UR, ... BL (U = вгору, F = спереду, R = праворуч, B = назад, L = ліворуч, D = вниз), потім наступні 8 3-символьні рядки - це кути в положеннях UFR, URB, ... DBR.
Вихід повинен дати послідовність рухів у такому форматі:
D+ L2 U+ F+ D+ L+ D+ F+ U- F+
Якщо D1 або D + являє собою поворот D (вниз) обличчям за годинниковою стрілкою на 90 градусів, L2 повертає лицьову сторону L на 180 градусів, U3 або U- являє собою поворот обличчя U проти годинникової стрілки на 90 градусів.
Букви нечутливі до регістру, а пробіли необов’язкові.
Наприклад, вихідний результат правильний для наступного вводу:
RU LF UB DR DL BL UL FU BD RF BR FD LDF LBD FUL RFD UFR RDB UBL RBU
Більш детально, будь ласка, зверніться до змагань з кубиками Томаша Рокіцького , за винятком того, що підрахунок буде зроблений безпосередньо за розміром файлу, як звичайна проблема з гольф-кодом. онлайн тестер включений теж.
Для довідки, найкоротше вже написане рішення - це останній запис у списку переможців конкурсу кубів
Для тих, хто бореться за візуалізацію формату макета:
0-1 2-3 4-5 6-7 8-9 10-11 12-13 14-15 16-17 18-19 20-21 22-23 24-25-26 27-28-29 30-31-32 33-34-35 36-37-38 39-40-41 42-43-44 45-46-47
UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR
Front:
+-------+-------+-------+
/ / / /|
/ 30 / 4 / 27 / |
+-------+-------+-------+ |
/ / / /|28+
/ 6 / / 2 / | /|
+-------+-------+-------+ |/ |
/ / / /|3 + |
/ 33 / 0 / 24 / | /|21+
+-------+-------+-------+ |/ | /|
| | | |26+ |/ |
| 35 | 1 | 25 | /| + |
| | | |/ | /|47+
+-------+-------+-------+ |/ | /
| | | |17+ |/
| 18 | | 16 | /|11+
| | | |/ | /
+-------+-------+-------+ |/
| | | |37+
| 40 | 9 | 38 | /
| | | |/
+-------+-------+-------+
Hidden faces:
+-------+-------+-------+
/| | | |
/ | 31 | 5 | 29 |
+ | | | |
/|32+-------+-------+-------+
/ | /| | | |
+ |/ | 22 | | 20 |
/|7 + | | | |
/ | /|23+-------+-------+-------+
+ |/ | /| | | |
|34+ |/ | 44 | 13 | 46 |
| /| + | | | |
|/ | /|43+-------+-------+-------+
+ |/ | / / / /
|19+ |/ 42 / 12 / 45 /
| /|15+-------+-------+-------+
|/ | / / / /
+ |/ 14 / / 10 /
|41+-------+-------+-------+
| / / / /
|/ 39 / 8 / 36 /
+-------+-------+-------+