Po katastrofalnej przejażdżce kajakiem spadłeś z wodospadu na końcu rzeki. Twoje kajak eksplodowało, ale udało ci się przetrwać eksplozję. Jednak twoja podróż po rzece zbiegła całkowicie z mapy - teraz zagubiłeś się w środku lasu. Na szczęście nadal masz umiejętności programistyczne, więc zdecydujesz się wyrzeźbić program na boku drzewa, aby pomóc ci znaleźć drogę przez las. Jednak na drzewie nie ma zbyt dużej powierzchni, więc program musi być możliwie jak najkrótszy.
W lesie można opisać jako no n( n > 5) kwadratu znaków, które składają się wyłącznie z małych liter a-z. Przykładowy las:
anehcienwlndm
baneiryeivown
bnabncmxlriru
anhahirrnrauc
riwuafuvocvnc
riwnbaueibnxz
hyirorairener
ruwiiwuauawoe
qnnvcizdaiehr
iefyioeorauvi
quoeuroenraib
cuivoaisdfuae
efoiebnxmcsua
Być może zauważyłeś, że w tym lesie abiegnie przez niego przekątna znaków od lewego górnego rogu do prawego dolnego rogu. Jest to „ścieżka” prowadząca przez las, która poprowadzi cię gdzieś, jeśli będziesz podążać. Twoim zadaniem jest napisanie programu, który znajdzie pojedynczą ścieżkę. Teraz bardziej szczegółowo opiszę, co oznacza „ścieżkę” w tym wyzwaniu.
„Ścieżka” w tym wyzwaniu jest definiowana jako linia podobna do linii, która mogła zostać wygenerowana za pomocą algorytmu Bresenham , ale z dodatkowymi wymaganiami, które:
- Linia musi mieć co najmniej 6 znaków
- Każda współliniowa (całkowicie przylegająca) grupa znaków w linii musi mieć tę samą długość .
- Zacznie się na jednym skraju lasu, a skończy na przeciwległym brzegu (patrz mój komentarz tutaj w celu opracowania)
Aby jaśniej wyjaśnić drugie wymaganie, rozważ następującą linię:
aaa
aaa
aaa
aaa
aaa
Ta linia składa się z kolinearnych „segmentów” znaków, z których każdy ma dokładnie trzy znaki. To kwalifikuje się jako ścieżka. Teraz rozważ tę linię:
a
aa
a
aa
a
aa
Ta linia składa się z kolinearnych „segmentów”, które nie są dokładnie tej samej długości znaków (niektóre z nich mają długość 1 znaku, a niektóre 2). Zatem ten nie kwalifikuje się jako ścieżka.
Twój program, mając mapę lasu, identyfikuje znaki użyte na ścieżce. Dane wejściowe są do wszystkiego, co jest dogodne (np. Argument wiersza poleceń, STDIN prompt()itp.). Nie można go wstępnie zainicjować w zmienną. Pierwsza część danych wejściowych to pojedyncza liczba całkowita nreprezentująca rozmiar lasu (las jest zawsze kwadratem). Potem jest spacja, a potem cały las jako pojedynczy ciąg. Na przykład przykładowy las zostałby przedstawiony jako dane wejściowe w następujący sposób:
13 anehcienwlndmbaneiryeivownbnabncmxlriruanhahirrnraucriwuafuvocvncriwnbaueibnxzhyirorairenerruwiiwuauawoeqnnvcizdaiehriefyioeorauviquoeuroenraibcuivoaisdfuaeefoiebnxmcsua
Dane wyjściowe dla tego będą:
a
ponieważ ścieżka jest tworzona za pomocą litery a. W lesie będzie tylko jedna ścieżka. To jest kod golfowy, więc wygrywa najmniejsza liczba znaków. Jeśli masz pytania, zapytaj w komentarzach.