Chcesz otworzyć nowe zoo. To będzie niesamowite. Ale będąc tanią łyżwą, którą jesteś, chcesz pozwolić sobie tylko na trzyliterowe zwierzęta (wszyscy wiedzą, że koszt zwierzęcia jest proporcjonalny do długości jego nazwy). Istnieje marzenie, aby ludzie płacili za oglądanie elephant
. Ale nagle masz genialny pomysł. Jeśli po prostu prawidłowo umieścisz zwierzęta we zagrodzie, możesz stworzyć złudzenie optyczne elephant
! Oto widok z góry nowego „związku słoni”:
elk
eel
pig
hog
ant
-------- (fence)
^
| viewing direction
Haha, ci łatwowierni goście!
Tak, tak działa percepcja.
Wyzwanie
Biorąc pod uwagę niepuste słowo składające się tylko z małych angielskich liter, określ, czy można je utworzyć, nakładając następujące 30 trzyliterowe słowa zwierząt:
ant ape asp ass bat bee boa cat cod cow
dab dog eel elk emu fly fox gnu hog ide
jay kea kob koi olm owl pig rat ray yak
Tak, jest ich ponad 30, ale to ładna okrągła liczba.
Opcjonalnie możesz otrzymać tę listę jako dane wejściowe (w dowolnym rozsądnym formacie listy lub ciągu, o ile nie jest ona wstępnie przetworzona). Prawdopodobnie zechcesz to zrobić, chyba że czytanie i przetwarzanie tej listy danych wejściowych jest znacznie droższe niż kodowanie i kompresowanie jej w wybranym języku. Zauważ, że nawet jeśli weźmiesz listę jako dane wejściowe, możesz założyć, że zawsze będzie to dokładnie ta lista, więc jeśli twój kod opiera się na przekazywanej liście mającej 30 elementów i nie zawierającej słowa z
, to jest w porządku.
Każde słowo może być użyte wiele razy. Zwierzęta nie mogą być odcięte na końcach, tylko częściowo ukryte przez inne zwierzęta. Więc ox
nie jest możliwy ciąg, nawet jeśli mamy fox
.
Dane wyjściowe powinny być zgodne z prawdą, jeśli jest to możliwe, a fałsz w przeciwnym razie.
Możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji i wypisując wynik przez STDOUT (lub najbliższą alternatywę), wartość zwracaną funkcji lub parametr funkcji (wyjściowej).
Twój kod powinien obsłużyć dowolny z przypadków testowych w ciągu kilku sekund.
Obowiązują standardowe zasady gry w golfa .
Więcej przykładów
- Każde jedno- lub dwuliterowe słowo jest oczywiście fałszem.
- Podobnie jak każde trzyliterowe słowo, którego nie ma na powyższej liście.
- Nawet jeśli mamy
gnu
irat
,gnat
jest falsy ponieważ nie ma sposobu, aby zorganizować je tak, że widać tylko dwa listy każda (nie chcemy wyciąć zwierząt na trzy części).
Kilka prawdziwych przykładów:
pigment
ant
bee
olm
pig
antioxidant
fox
koi ide
ant ant
Przypadki testowe
Większość przypadków testowych została zaczerpnięta z uruchomienia implementacji referencyjnej dla słownika. Ostatnie kilka „słów” zostało wygenerowanych losowo i są one tylko po to, aby zapewnić wystarczającą wydajność przesyłania.
Prawda:
ant
owl
bass
pride
bobcat
peafowl
elephant
hedgehogs
crocodile
antidemocrat
aspidoganoidei
biodegradability
angioelephantiasis
propreantepenultimate
acategnukeaidabeleenaspcodcoidyakwakoasshogattkjaypigkobolcodidaskearaywelkwboaxbeeuflapaspoapemaassaaspeewoglmabiemuwjadogacagnuepigjaycownbatjaemuifoxkeaeekekeagratsseeluejdoghogaolmgpigbeaeelemulasphogjaydabemukgnunueifoasdoglrayyadogpewlayroassasslgnuaspyyakkbokeaodxilopgnuasppigkobelratelkolmakob
koigdgaspslycoyakehrdabowbatdkkeapogkobelrowlyarpidepetlfoxeboaiderbeefoxbgnuapeocowgiecowlkoieeltbategspemuideatdogbeeecatgeaoccattbbeassgnasolkeaflyelkaognubeeabrratoccolmobodoglyelraywelkoxantowleedrayflypeappigogatraoyakccpiganaaspkobabjaspkointantybjbeeanolmuijaylratojaynueidflyjarayabatmmpigtfly
eolmantjkobeeaorayogaowldfoxayeassapibatmflylyraelaspsseolmbelkkaoantlmufodasgnueantaidenthyakcodoxuepigodggnuantatlcatnuuelkpemucbapeeoiahdogplkowletbatdrayarayoaelkgrayodcatgkantewkobeljaybeeyfkobtbdabadoghbatfoxtflygaspdeidogtowlkeaolmyraelfleelejayehogowlccatoxeabiemkobpigolmdkobrcidekyakabboyidep
Falsy:
a
ox
ram
bear
koala
antelope
albatross
zookeeper
salamander
caterpillar
hippopotamus
koigdgaspslycoyakehrdabowbatdkkeapogkobelrowlyarpidepetlfoxeboaiderbeefoxbgnuapeocowgiecowlkoieeltbategspemuideatdogbeezcatgeaoccattbbeassgnasolkeaflyelkaognubeeabrratoccolmobodoglyelraywelkoxantowleedrayflypeappigogatraoyakccpiganaaspkobabjaspkointantybjbeeanolmuijaylratojaynueidflyjarayabatmmpigtfly
koigdgaspslycoyakehrdabowbatdkkeapogkobelrowlyarpidepetlfoxeboaiderbeefoxbgnuapeocowgiecowlkoieeltbategspemuideatdogbeeecatgeaoccattbbeassgnasolkeaflxelkaognubeeabrratoccolmobodoglyelraywelkoxantowleedrayflypeappigogatraoyakccpiganaaspkobabjaspkointantybjbeeanolmuijaylratojaynueidflyjarayabatmmpigtfly
beyeodpgspeclxlkbkaylldnceepkocbdmymsaogsowpbawbauaioluaaagaetdoaoialeoxaagspoelegflpylptylnolnatrjabaorkdteeydloiebbptatdtfdfgoodtbkoafmounbduaffcrfelcnawmxaskgaoenaattbaobgbgabnhkesbgaaaaotafkiiieatworginaeowaehuddegooaalowaoososaksahoimkulbtoadyyelkcmkacbuostadppcuglbnmotedfgfkoleldonknemomnmoutykg
You may optionally receive this list as input
- czy to oznacza, że nie liczy się on do partytury, podczas gdy kodowanie byłoby trudne?