Czczony czas przejścia pedantów polega na tym, że zdjęcia „kostek Rubika” (na koszulkach, plakatach itp.) Nie są w rzeczywistości możliwe do rozwiązania.
Pierwszą rzeczą, którą należy sprawdzić, jest to, że sześcian składa się z odpowiednich elementów. Aby rozwiązać zagadkę, sześcian potrzebuje sześciu kolorów z dziewięcioma kwadratami. Kostka potrzebuje również każdej jednostki krawędzi i narożnika (są to mniejsze kostki, które składają się na kostkę), aby była unikalna. Muszą być nie tylko wyjątkowe, ale jeśli dwa środkowe elementy są naprzeciw siebie, żadna krawędź lub narożnik nie może zawierać obu tych kolorów.
Gdy masz kostkę złożoną ze wszystkich odpowiednich elementów, musisz sprawdzić, czy można ją rozwiązać. Tutaj jest kilka zasad, więc odłożę się do eksperta, aby je wyjaśnić, spoiler poniżej wyjaśnia, jak możemy to zrobić. Jeśli chcesz samodzielnie rozwiązać problem, nie musisz odwiedzać witryny, aby zrozumieć lub wziąć udział w tym wyzwaniu.
Twoim zadaniem jest pobranie wzorca jako danych wejściowych i ustalenie, czy jest to faktycznie sześcian Rubika do rozwiązania. Aby można go było rozwiązać, musi istnieć sposób wykonywania prawidłowych ruchów na kostce, tak aby kostka miała tylko jeden kolor na każdej powierzchni (a różne ściany miały różne kolory). Większość kostek Rubika ma standardową kolorystykę (biały jest przeciwny do żółtego itp.), Możesz nie zakładać, że stan rozwiązania odpowiada tej konkretnej kolorystyce.
Prawidłowym ruchem jest obrót w prawo lub w lewo o jedną powierzchnię sześcianu. Wraz z obrotem powierzchni sześcianu obracają się również wszystkie kwadraty graniczące z twarzą, pozostając w kontakcie z twarzą, której wcześniej dotykali.
IO
Możesz wziąć kostkę w dowolny rozsądny sposób. Jeśli twój język ma wbudowany typ „sześcianu”, co jest dobre dla ciebie, to jest dobre jako dane wejściowe, w przeciwnym razie możesz wziąć tablicę 2D sieci, kostki, 1 3 na 3 listy dla każdej twarzy. Po prostu bądź rozsądny. Jeśli chcesz wiedzieć, czy określony format jest akceptowalny, wpisz komentarz lub wyślij mi ping na czacie, a dodam wyzwanie, aby określić jego ważność.
Twój format wejściowy wymaga obsługi maksymalnie 9 możliwych kolorów.
Dla danych wyjściowych jest to problem decyzyjny, dlatego powinieneś wypisać jedną stałą wartość dla „Tak, to jest poprawna kostka Rubika” i jedną inną stałą wartość dla „Nie, to nie jest poprawna kostka Rubika”.
To jest golf golfowy, więc odpowiedzi będą liczone w bajtach, przy czym mniej bajtów będzie lepszych.
Przypadki testowe
Oto przypadki testowe. Są one sformatowane jako sieć sześcianu z każdym kwadratem jako pojedynczą literą. Różne litery reprezentują różne kolory. Na życzenie można dodać więcej przypadków testowych.
Rozpuszczalny
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YYY
YYY
YYY
GRR
GRR
ORW
WWRBWYBOOGGY
GGRBWGYBBOOO
OOGRWGYWWRBB
WYO
YYB
YYB
Nierozstrzygalny
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