Napisz program lub funkcję w dowolnym języku programowania, który przyjmuje 6-cyfrowy szesnastkowy zapis / argument. Wejście / argument może mieć 6 wartości lub ciąg 6 znaków.
Twój program powinien wypisać prostokątny blok znaków o szerokości dokładnie 8 znaków, zawierający tylko dostarczone znaki szesnastkowe w połączeniu ze spacjami (+ podawanie wiersza). Blok prostokątny jest kombinacją mniejszych kształtów bloków, po jednym dla każdej z 6 podanych wartości.
Poniżej znajdują się 2 przykładowe dane wejściowe i przykładowe prawidłowe dane wyjściowe:
Przykładowe dane wejściowe :
"464fa6" or [4, 6, 4, 15, 10, 6]
Jedno prawidłowe wyjście rozwiązania :
44 66 ff
44 66 ff
66 ff
aa f
aaa ffff
aa ffff
aaa
6 44
66666 44
Przykładowe dane wejściowe :
"35bf12"
Jedno prawidłowe wyjście rozwiązania :
55555 22
bbbbbbbb
b b b
33
fffff 3
ff ff
ffffff 1
Zasady:
Wyjście musi mieć kształt prostokątny
Dane wyjściowe mogą mieć dowolną wysokość, ale muszą mieć dokładnie 8 znaków
„Bloki wewnętrzne”, zwane „kształtami bloków”, nie mogą łączyć się z żadnym innym kształtem bloków, kształty bloków muszą być oddzielone ścianą pustych miejsc o szerokości dokładnie 1 znaku w poziomie, w pionie i po przekątnej.
Ściana pustych przestrzeni nie może przebiegać równolegle do zewnętrznych krawędzi, tylko krawędzie ścienne o szerokości 1 znaku mogą występować na krawędziach wyjściowych. Nigdzie na skraju prostokąta wyjścia nie powinny znajdować się żadne połączone spacje.
Szerokość ściany pustych miejsc nie powinna w żadnym momencie przekraczać 1 znaku.
Wewnętrzne kształty bloków powinny być jednolite z obszarem x znaków, gdzie x jest podaną wartością szesnastkową, a kształt powinien składać się z postaci x, gdzie x jest reprezentatywnym znakiem szesnastkowym.
Wewnętrzne kształty bloków mogą mieć dowolną formę, o ile wszystkie znaki kształtu łączą się pionowo lub poziomo i nie zmieniają reguł dotyczących ściany pustych miejsc.
6 kształtów bloków można umieścić w dowolnym wewnętrznym „porządku” wewnątrz wyprowadzonego prostokąta.
Prawidłowy zakres wejściowy: 1 ... 15 („1” ... „f”) dla każdego kształtu. Dane wejściowe do programu nie powinny zawierać żadnych innych informacji niż 6 liczb szesnastkowych, a dane wejściowe nie powinny być sortowane w żaden inny sposób niż w próbkach przed dostarczeniem ich do programu / funkcji. Powiedz nam, jakiego formatu wejściowego używa Twoje rozwiązanie (dane wejściowe nie mogą zawierać żadnych innych informacji niż wartości szesnastkowe).
Kształt wewnętrznego bloku może być pusty. Otwór powinien składać się ze znaków spacji, które liczą się jako ściana pustych miejsc, co oznacza, że otwór w kształcie pustego wewnętrznego bloku nie może mieć więcej niż 1 znak szerokości.
Trzy przykłady prawidłowych pustych kształtów:
aaa
a aaa
aaa
999
9 9
999
9
ffffff
f ff
ffffff
Jeden przykład nieprawidłowego pustego kształtu:
ffffff
f f
f f
fffff
Zakładam, że wszystkie kombinacje danych wejściowych nie są w stanie „rozwiązać” zgodnie z powyższymi regułami, dlatego wymieniam 10 przykładowych danych wejściowych, które Twój program powinien być w stanie „rozwiązać” (wszystko jest możliwe do zweryfikowania):
1. 464fa6 (same as the first sample)
2. 35bf12 (second example input seen above)
3. 111126
4. ff7fff
5. 565656
6. abcdef
7. 1357bd
8. 8c6a42
9. ab7845
10. 349a67
Twój program powinien być w stanie rozwiązać dowolne z 10 próbek wejściowych w czasie rezonansowym. przetłumacz czas rezonansowy na 1 godzinę na standardowym komputerze stacjonarnym. Powiedzmy: 3 Ghz Dual core, 4 GB pamięci dla odniesienia.
To jest golf golfowy, wygrywa najkrótsze rozwiązanie. Rozwiązaniem może być w pełni działający program lub funkcja
Odpowiedzi:
Haskell, 156
Cóż, to trochę rozciąga zasady. Nie mam żadnych pustych ścian poza przełamaniami linii, dlatego wszystkie moje ściany mają długość 1.
wyjście dla 464fa6:
źródło
BrainF * ck - 134 (nowa linia intr
Myślę, że to jest najprostsza odpowiedź
Dane wejściowe pobrane za pomocą 6 znaków szesnastkowych na standardowe wejście, a następnie nowy wiersz do przesłania.
EDYCJA: Nie udaje się to z powodu reguły 6, której do tej pory nie zdawałem sobie w pełni sprawy: /
źródło