После вашей катастрофической поездки на каноэ вы в конечном итоге упали с водопада в конце речных порогов. Ваше каноэ взорвалось, но вам удалось пережить взрыв. Тем не менее, ваше речное путешествие полностью исчезло с карты - вы теперь потерялись посреди леса. К счастью, у вас все еще есть свои навыки программирования, поэтому вы решили вырезать программу в стороне дерева, чтобы помочь вам найти свой путь через лес. Однако на дереве не так много поверхности, поэтому вы должны сделать вашу программу максимально короткой.
Лес может быть описан как с 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. В лесу будет только один путь. Это код гольф, поэтому выигрывает меньшее количество персонажей. Если у вас есть вопросы, задавайте в комментариях.