Після катастрофічної їзди на каное , ви закінчилися падінням водоспаду в кінці річкових порогів. Ваше каное вибухнуло, але вам вдалося пережити вибух. Однак ваша річкова мандрівка вийшла повністю з карти - тепер ви опинилися загубленими посеред лісу. На щастя, у вас все ще є навички програмування, тому ви вирішили вирізати програму в сторону дерева, щоб допомогти вам знайти шлях через ліс. Однак на дереві не дуже велика площа поверхні, тому ви повинні зробити свою програму якомога коротшою.
Ліс може бути описаний як з n
допомогою n
( n > 5
) квадратом символів, який буде складатися тільки з малих літер a-z
. Приклад лісу:
anehcienwlndm
baneiryeivown
bnabncmxlriru
anhahirrnrauc
riwuafuvocvnc
riwnbaueibnxz
hyirorairener
ruwiiwuauawoe
qnnvcizdaiehr
iefyioeorauvi
quoeuroenraib
cuivoaisdfuae
efoiebnxmcsua
Можливо, ви помітили, що в цьому лісі є діагональна лінія a
символів, що проходить через нього від лівого верхнього кута до нижнього правого кута. Це "стежка" через ліс, яка приведе вас кудись, якщо ви будете слідувати за нею. Ваше завдання - написати програму, яка знайде єдиний шлях. Зараз я більш детально опишу, що означає «шлях» у цьому виклику.
У цьому виклику "шлях" визначається як лінія, подібна до тієї, яка могла бути сформована за допомогою алгоритму Брезена , але з додатковими вимогами, які:
- Рядок повинен бути не менше 6 символів
- Кожна колінеарна (повністю суміжна) група символів у рядку повинна бути однакової довжини .
- Він розпочнеться на одному краю лісу і закінчиться на протилежному краю (див. Мій коментар тут для опрацювання)
Щоб пояснити другу вимогу більш чітко, розглянемо наступний рядок:
aaa
aaa
aaa
aaa
aaa
Цей рядок складається з колінеарних "сегментів" символів, кожен з яких має рівно три символи. Це кваліфікується як шлях. Тепер розглянемо цей рядок:
a
aa
a
aa
a
aa
Цей рядок складається з колінеарних "сегментів", які не всі точно однакової довжини символів (деякі з них мають довжину 1 символу, а деякі - 2). Таким чином, цей не кваліфікується як шлях.
Вашій програмі, надавши карту лісу, визначте символи, які використовуються на шляху. Вхід є тим, що є зручним (наприклад, аргумент командного рядка, STDIN prompt()
тощо). Вона не може бути попередньо ініціалізована в змінну. Перша частина вводу - це єдине ціле число, що n
представляє розмір лісу (ліс - це завжди квадрат). Після цього - пробіл, а потім і весь ліс, як одна струна. Наприклад, приклад лісу буде представлений у якості вхідного матеріалу, як це:
13 anehcienwlndmbaneiryeivownbnabncmxlriruanhahirrnraucriwuafuvocvncriwnbaueibnxzhyirorairenerruwiiwuauawoeqnnvcizdaiehriefyioeorauviquoeuroenraibcuivoaisdfuaeefoiebnxmcsua
Вихід для цього буде:
a
тому що шлях утворюється за допомогою букви a
. У лісі буде лише одна стежка. Це код гольфу, тому виграє найменша кількість символів. Якщо у вас є питання, запитайте в коментарях.