Vuoi aprire un nuovo zoo. Sarà fantastico. Ma essendo il cheapskate che sei, vuoi permetterti solo animali di tre lettere (tutti sanno che il costo di un animale è proporzionale alla lunghezza del suo nome). Ecco il tuo sogno di far pagare la gente per vederne uno elephant
. Ma all'improvviso hai un'idea geniale. Se si posizionano correttamente gli animali nella penna, è possibile creare l'illusione ottica di un elephant
! Ecco una vista dall'alto verso il basso del tuo nuovo "elefante composto":
elk
eel
pig
hog
ant
-------- (fence)
^
| viewing direction
Ahah, quei visitatori creduloni!
Sì, è così che funziona la percezione.
La sfida
Data una parola non vuota costituita solo da lettere inglesi minuscole, determinare se può essere formata dalla sovrapposizione delle seguenti 30 parole di animali di tre lettere:
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
Sì, ce ne sono più di 30, ma è un bel numero rotondo.
Puoi facoltativamente ricevere questo elenco come input (in qualsiasi elenco ragionevole o formato stringa, purché non sia pre-elaborato). Probabilmente vorrai farlo, a meno che la lettura e l'elaborazione di questo elenco di input non sia molto più costosa della codifica e della compressione nella tua lingua preferita. Nota che anche se prendi la lista come input puoi presumere che sarà sempre esattamente questa lista, quindi se il tuo codice si basa sulla lista passata lunga 30 elementi e non contenente una parola z
, va bene.
Ogni parola può essere utilizzata più volte. Gli animali non possono essere tagliati alle estremità, solo parzialmente nascosti da altri animali. Quindi ox
non è una stringa possibile, anche se abbiamo fox
.
L'output dovrebbe essere veritiero, se possibile, e falsare diversamente.
È possibile scrivere un programma o una funzione, prendendo l'input tramite STDIN (o l'alternativa più vicina), l'argomento della riga di comando o l'argomento della funzione e producendo il risultato tramite STDOUT (o l'alternativa più vicina), il valore di ritorno della funzione o il parametro della funzione (out).
Il tuo codice dovrebbe gestire tutti i casi di test in pochi secondi.
Si applicano le regole standard del code-golf .
Altri esempi
- Qualsiasi parola di una o due lettere è ovviamente falsa.
- Lo stesso vale per qualsiasi parola di tre lettere che non figura nell'elenco sopra.
- Anche se abbiamo
gnu
erat
,gnat
è falso poiché non c'è modo di disporli in modo tale da vedere solo due lettere di ciascuno (non vogliamo tagliare gli animali in terzi).
Alcuni esempi veritieri:
pigment
ant
bee
olm
pig
antioxidant
fox
koi ide
ant ant
Casi test
La maggior parte dei casi di test è stata presa dall'esecuzione di un'implementazione di riferimento su un dizionario. Le ultime "parole" sono state generate casualmente e sono lì solo per garantire che gli invii siano sufficientemente efficienti.
Truthy:
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
- vuol dire che non conta ai fini del punteggio, mentre sarebbe difficile codificarlo?