Napisz najkrótszy program, który rozwiązuje kostkę Rubika (3 * 3 * 3) w rozsądnym czasie i porusza się (powiedzmy, maks. 5 sekund na twoim komputerze i mniej niż 1000 ruchów).
Dane wejściowe mają format:
UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR
(to konkretne wejście reprezentuje rozwiązany moduł).
Pierwsze 12 2-znakowych ciągów to krawędzie w pozycjach UF, UR, ... BL (U = góra, F = przód, R = prawo, B = tył, L = lewy, D = dół), a następnie kolejne 8 Ciągi 3 znaków to rogi w pozycjach UFR, URB, ... DBR.
Dane wyjściowe powinny zawierać sekwencję ruchów w tym formacie:
D+ L2 U+ F+ D+ L+ D+ F+ U- F+
Gdzie D1 lub D + oznacza obrócenie powierzchni D (w dół) o 90 stopni w kierunku zgodnym z ruchem wskazówek zegara, L2 obraca powierzchnię L o 180 stopni, U3 lub U- oznacza obrócenie powierzchni U w kierunku przeciwnym do ruchu wskazówek zegara o 90 stopni.
Litery nie uwzględniają wielkości liter, a spacje są opcjonalne.
Na przykład powyższe dane wyjściowe są poprawne dla następujących danych wejściowych:
RU LF UB DR DL BL UL FU BD RF BR FD LDF LBD FUL RFD UFR RDB UBL RBU
Aby uzyskać więcej informacji, zapoznaj się z konkursem kostki Tomasa Rokickiego , z wyjątkiem tego, że ocena będzie dokonywana bezpośrednio według rozmiaru pliku, jak normalny problem z golfem. Tester Internecie wliczone jest zbyt.
Dla porównania, najkrótszym już napisanym rozwiązaniem jest ostatni wpis na liście zwycięzców konkursu kostki
Dla tych, którzy mają problemy z wizualizacją formatu układu:
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 /
+-------+-------+-------+