Напишите самую короткую программу, которая решает кубик Рубика (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 двухсимвольных строк - это ребра в позициях 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 /
+-------+-------+-------+