А може, це насправді не лабіринт, але все ж.
Правила:
Введення є рядком два рядки, що складається з
*
,1
,x
іX
. Ця струна - це лабіринт, який потрібно пройти. Лінії мають рівну довжину .Ви можете взяти введення як рядок із
,
(кома) або будь-який зручний роздільник між цими двома рядками. Або ви можете взяти обидва рядки як окремі аргументи своєї функції.Вихід - це кількість кроків, які потрібно зробити для виходу з рядка (останній крок - це крок, який виводить вас із рядка).
Ви починаєте у верхньому лівому куті (верхній рядок) перед першим символом.
Для кожного кроку ви рухаєтесь вперед одним символом (від n-ої до (n + 1) позиції ). Тоді, залежно від характеру, на який ви наступаєте, результат відрізняється. Ось що робить кожен char:
*
- нічого. Ви просто наступаєте на нього нормально.x
- як тільки ви ступили на нього, переключіть лінію, але залишайтеся на тій же горизонтальній відстані від початку. Наприклад, ви ступили на третю позицію вищої лінії і тут зустріли малі регістриx
. Потім ви негайно переходите на нижню лінію, але знову на третю позицію.X
- перемкнути лінію і перейти до наступної позиції. Приклад такий самий, але ви також переходите з третьої на четверту позицію (таким чином, ви перебуваєте на другому рядку в четвертому положенні).1
- просто рухайтеся вперед ще однією позицією.
Після того, як кожен персонаж виконує свою роботу, він замінюється пробілом і більше не "працює".
Наступні приклади.
Вхід :
x *
Як було сказано раніше, ви починаєте перед першим символом першого рядка. Перший крок переміщує вас на письмі,
x
і цей лист перемикає вас на другий рядок. Листx
більше не функціонує якx
, а замінено на*
. Це буде більш актуально в останніх прикладах. Ви зараз на зірочці на нижній лінії, і вам це нічого не зробило.Другий крок - це переміщення вас вперед, і ви виходите з струни, тому лабіринт завершено, і він пройшов 2 кроки.
Вихідні дані
2
.Вхід :
xX* x1*
1-й крок : ви рухаєтесь далі
x
, що переміщує вас наx
нижній лінії. Тут з'являється правило, яке говорить про те, що використаний символ замінено зірочкою. Потім ви переходите назад на перший рядок, але це вже не такx
немає, оскільки він був використаний і став зірочкою. Таким чином, ви безпечно рухаєтесь по цій зірочці і крок завершений (ви зараз на першій позиції першого рядка).2-й крок : ви рухаєтесь далі
X
, воно підштовхує вас до нижньої лінії, а потім штовхає вас вперед. Тепер ви перебуваєте на третій позиції другого рядка (зірочка), жодного разу не відвідував другу позицію (яка містить1
).3-й крок : ви рухаєтеся вперед, виходячи з рядка.
Вихід :
3
.
Тестові приклади:
Вхід:
*1* xxx
Вихід:
3
. (тому що1
змушує вас стрибати на третю позицію). Там ви ніколи не відвідуєте другий рядок, але це потрібна частина вводу.Вхід:
*X*1*x x*1xx*
Вихід:
4
.Вхід:
1x1x ***X
Вихід:
3
.Вхід:
1*x1xxx1*x x*x1*11X1x
Вихід:
6
.Вхід:
xXXXxxx111* **xxx11*xxx
Вихід:
6
.
"\n\n"
це рядок з двох рядків ...
1
, коли ви починаєте перед першим рядком, потім рухаєтесь на крок вперед, а потім закінчуєте лабіринт ...