Dopo il tuo disastroso giro in canoa , sei finito per cadere da una cascata alla fine delle rapide del fiume. La tua canoa è esplosa, ma sei riuscito a sopravvivere all'esplosione. Tuttavia, il tuo viaggio fluviale è andato completamente fuori dalla mappa: ora ti sei ritrovato perso nel mezzo di una foresta. Fortunatamente, hai ancora le tue capacità di programmazione, quindi decidi di scolpire un programma sul lato di un albero per aiutarti a trovare la strada attraverso la foresta. Tuttavia, non c'è molta superficie sull'albero, quindi è necessario rendere il programma il più breve possibile.
La foresta può essere descritto come nda n( n > 5) quadrato di caratteri, che consisterà solamente delle lettere minuscole a-z. Una foresta di esempio:
anehcienwlndm
baneiryeivown
bnabncmxlriru
anhahirrnrauc
riwuafuvocvnc
riwnbaueibnxz
hyirorairener
ruwiiwuauawoe
qnnvcizdaiehr
iefyioeorauvi
quoeuroenraib
cuivoaisdfuae
efoiebnxmcsua
Forse avrai notato che in questa foresta c'è una linea diagonale di apersonaggi che la attraversa dall'angolo in alto a sinistra all'angolo in basso a destra. Questo è un "percorso" attraverso la foresta che ti porterà da qualche parte se lo segui. Il tuo compito è scrivere un programma che troverà il percorso singolare. Descriverò più specificamente ciò che connota un "percorso" in questa sfida.
Un "percorso", in questa sfida, è definito come una linea simile a quella che potrebbe essere stata generata con un algoritmo di Bresenham , ma con i requisiti aggiunti che:
- La riga deve contenere almeno 6 caratteri
- Ogni gruppo collineare (completamente adiacente) di caratteri nella riga deve avere la stessa lunghezza .
- Inizierà da un lato della foresta e finirà dal lato opposto (vedi il mio commento qui per l'elaborazione)
Per spiegare più chiaramente il secondo requisito, considerare la seguente riga:
aaa
aaa
aaa
aaa
aaa
Questa linea è composta da "segmenti" collineari di personaggi, ognuno dei quali è lungo esattamente tre caratteri. Si qualifica come un percorso. Ora considera questa riga:
a
aa
a
aa
a
aa
Questa linea è composta da "segmenti" collineari che non hanno esattamente la stessa lunghezza di caratteri (alcuni di essi sono lunghi 1 carattere e alcuni sono 2). Pertanto, questo non si qualifica come un percorso.
Il tuo programma, data una mappa della foresta, identifica i personaggi usati nel percorso. L'input è qualunque cosa sia conveniente (es. Argomento della riga di comando, STDIN prompt(), ecc.). Non può essere pre-inizializzato in una variabile. La prima parte dell'input è un singolo intero che nrappresenta la dimensione della foresta (la foresta è sempre un quadrato). Dopo quello è uno spazio e quindi l'intera foresta come una singola stringa. Ad esempio, la foresta di esempio verrebbe presentata, come input, in questo modo:
13 anehcienwlndmbaneiryeivownbnabncmxlriruanhahirrnraucriwuafuvocvncriwnbaueibnxzhyirorairenerruwiiwuauawoeqnnvcizdaiehriefyioeorauviquoeuroenraibcuivoaisdfuaeefoiebnxmcsua
L'output per questo sarebbe:
a
perché il percorso è formato usando la lettera a. Ci sarà solo un percorso nella foresta. Questo è il golf del codice, quindi vince il numero più basso di caratteri. Se hai domande, chiedi nei commenti.