Jak zapewne teraz, istnieje 2339 rozwiązań pentomino w siatce 6x10. Istnieją różne schematy znakowania dla 12 pentominoów, dwa z nich pokazano na poniższym obrazku:
Źródło zdjęcia: Wikipedia
Na potrzeby bieżącego zadania powiemy, że znormalizowane rozwiązanie pentomino to rozwiązanie, które wykorzystuje drugi schemat znakowania (Conwaya).
Przykład:
O O O O O S S S Z Z
P P R R S S W W Z V
P P P R R W W Z Z V
U U X R T W Y V V V
U X X X T Y Y Y Y Q
U U X T T T Q Q Q Q
Kawałek z 5 kwadratami z rzędu jest oznaczony literami O
, zgodnie ze schematem. To samo dotyczy wszystkich elementów.
Zadanie:
Biorąc pod uwagę rozwiązanie pentomino 6x10, w którym kawałki są oznaczone losowym sheem, znormalizuj je, aby wszystkie kawałki były oznaczone w schemacie znakowania Conwaya. Musisz rozpoznać elementy i oznaczyć każdy kwadrat danego elementu symbolem tego elementu.
Wejście:
Rozwiązanie, które należy znormalizować w dowolnym dogodnym dla Ciebie formacie, na przykład:
Ciąg wieloliniowy
Lista ciągów
Lista list znaków
i tak dalej
Wynik:
To samo rozwiązanie (wszystkie pozycje i orientacja sztuk zachowane), ale każda sztuka jest oznakowana zgodnie ze schematem znakowania Conwaya. Uwaga: Dane wyjściowe MUSZĄ BYĆ WYDRUKOWANE jako siatka znaków 6x10. Wiodące i końcowe znaki nowej linii i spacje są dozwolone. Możesz także wydrukować spację między znakami (ale nie puste linie), jak w powyższym przykładzie.
Przypadki testowe:
1. Wejście:
6623338888
6222344478
66A234BB70
1AAA94B770
11A99BB700
1199555550
Wynik:
UURTTTQQQQ
URRRTVVVSQ
UUXRTVZZSY
PXXXWVZSSY
PPXWWZZSYY
PPWWOOOOOY
2. Dane wejściowe:
45ookkkk00
455ooogk00
4a55gggdd0
4aaa3gnnd.
4am333ndd.
mmmm3nn...
Wynik:
OWSSQQQQPP
OWWSSSRQPP
OTWWRRRUUP
OTTTXRZZUV
OTYXXXZUUV
YYYYXZZVVV
Kryteria wygranej:
Najkrótsze rozwiązanie w bajtach w każdym języku wygrywa. Nie zniechęcaj się językami golfa. Wyjaśnienia algorytmów i implementacji są mile widziane.