Sau chuyến đi ca nô thảm khốc , cuối cùng bạn đã rơi xuống một thác nước ở cuối thác ghềnh sông. Xuồng của bạn phát nổ, nhưng bạn đã xoay sở để sống sót sau vụ nổ. Tuy nhiên, hành trình trên sông của bạn đã hoàn toàn rời khỏi bản đồ - bây giờ bạn đã thấy mình bị lạc giữa một khu rừng. May mắn thay, bạn vẫn có kỹ năng lập trình của mình, vì vậy bạn quyết định khắc một chương trình vào bên cạnh một cái cây để giúp bạn tìm đường xuyên rừng. Tuy nhiên, không có nhiều diện tích bề mặt trên cây, vì vậy bạn phải làm cho chương trình của mình càng ngắn càng tốt.
Rừng có thể được mô tả như một n
bằng n
( n > 5
vuông) của nhân vật, mà sẽ chỉ bao gồm các chữ thường a-z
. Một ví dụ về rừng:
anehcienwlndm
baneiryeivown
bnabncmxlriru
anhahirrnrauc
riwuafuvocvnc
riwnbaueibnxz
hyirorairener
ruwiiwuauawoe
qnnvcizdaiehr
iefyioeorauvi
quoeuroenraib
cuivoaisdfuae
efoiebnxmcsua
Bạn có thể nhận thấy rằng trong khu rừng này, có một đường chéo các a
ký tự chạy qua nó từ góc trên bên trái đến góc dưới bên phải. Đây là một "con đường" xuyên qua khu rừng sẽ dẫn bạn đến một nơi nào đó nếu bạn đi theo nó. Nhiệm vụ của bạn là viết một chương trình sẽ tìm ra con đường duy nhất. Bây giờ tôi sẽ mô tả cụ thể hơn những gì hàm ý một "con đường" trong thử thách này.
Một "đường dẫn", trong thử thách này, được định nghĩa là một đường giống với một đường có thể được tạo bằng thuật toán Bresenham , nhưng với các yêu cầu được thêm vào:
- Dòng phải dài tối thiểu 6 ký tự
- Mỗi nhóm ký tự (hoàn toàn liền kề) trong dòng phải có cùng độ dài .
- Nó sẽ bắt đầu ở một cạnh của khu rừng và kết thúc ở cạnh đối diện (xem bình luận của tôi ở đây để biết thêm chi tiết)
Để giải thích rõ hơn yêu cầu thứ hai, hãy xem xét dòng sau:
aaa
aaa
aaa
aaa
aaa
Dòng này bao gồm các "phân đoạn" của các ký tự, mỗi ký tự dài chính xác ba ký tự. Nó đủ điều kiện như một con đường. Bây giờ hãy xem xét dòng này:
a
aa
a
aa
a
aa
Dòng này bao gồm các "phân đoạn" cộng tuyến không hoàn toàn chính xác cùng độ dài của các ký tự (một số trong số chúng dài 1 ký tự và một số trong số chúng là 2). Vì vậy, điều này không đủ điều kiện như một con đường.
Chương trình của bạn, được cung cấp một bản đồ của khu rừng, xác định các ký tự được sử dụng trong đường dẫn. Đầu vào là bất cứ điều gì thuận tiện (ví dụ: đối số dòng lệnh, STDIN prompt()
, v.v.). Nó không thể được khởi tạo thành một biến. Phần đầu tiên của đầu vào là một số nguyên duy nhất n
biểu thị kích thước của khu rừng (khu rừng luôn là một hình vuông). Sau đó là một khoảng trắng và sau đó toàn bộ khu rừng như một chuỗi. Ví dụ, rừng ví dụ sẽ được trình bày, như là một đầu vào, như thế này:
13 anehcienwlndmbaneiryeivownbnabncmxlriruanhahirrnraucriwuafuvocvncriwnbaueibnxzhyirorairenerruwiiwuauawoeqnnvcizdaiehriefyioeorauviquoeuroenraibcuivoaisdfuaeefoiebnxmcsua
Đầu ra cho điều này sẽ là:
a
vì con đường được hình thành bằng cách sử dụng thư a
. Sẽ chỉ có một con đường trong rừng. Đây là mã golf, vì vậy số lượng nhân vật thấp nhất sẽ thắng. Nếu bạn có câu hỏi, hãy hỏi trong các ý kiến.