Після катастрофічної їзди на каное , ви закінчилися падінням водоспаду в кінці річкових порогів. Ваше каное вибухнуло, але вам вдалося пережити вибух. Однак ваша річкова мандрівка вийшла повністю з карти - тепер ви опинилися загубленими посеред лісу. На щастя, у вас все ще є навички програмування, тому ви вирішили вирізати програму в сторону дерева, щоб допомогти вам знайти шлях через ліс. Однак на дереві не дуже велика площа поверхні, тому ви повинні зробити свою програму якомога коротшою.
Ліс може бути описаний як з 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. У лісі буде лише одна стежка. Це код гольфу, тому виграє найменша кількість символів. Якщо у вас є питання, запитайте в коментарях.