Давши рядок, де перший рядок містить пробіли та один період ( .
, "кулька"), а потім рядки, що містять пробіли, косою косою рискою ( /
) та косою косою рисою ( \
), визначте, у який стовпчик потрапить куля після падіння із початкового положення . Кожен /
переміщує його вліво на 1 стовпчик і кожен \
переміщує його вправо на 1 стовпець.
Зразок введення
.
/ \ \
/ /
\ \/ \
\ /\
\ /\ \
\ /
Вибірка зразка
Куля починається у колонці 5, потрапляє /
на лінію 3, потім три \
на лінії 5 - 7 для остаточного положення:
7
Зауважте, що стовпці мають 1-індексацію, переважно для узгодження з текстовими редакторами.
Корпусні кромки
Якщо куля потрапляє на a /
в першому стовпчику, він назавжди застряг у неіснуючій колонці 0. Ваша програма повинна правильно впоратися з цим шляхом друку 0
.
Якщо куля потрапляє в обидві сторони \/
візерунка, результат не визначений. Вашій програмі дозволено закінчуватись без виводу, нескінченно циклічно чи друкувати повідомлення про помилку (друкується моє рішення -1
), але вона не повинна друкувати нічого, що може сприйматись як дійсний вихід.
Якщо м'яч \\
вдарив по лівій косою рисою за малюнком, він повинен закінчитися прямо під правою косою рисою, а не праворуч від неї. Рішення, яке я спочатку передбачав, було схильне сприймати це неправильно, тому не йдіть цим шляхом!
Після .
або останнього, /
або \
у кожному рядку можуть бути пробіли . Ваша програма не повинна покладатися на доступність таких прокладок. На подібній ноті, за першим рядком можуть бути або не бути жодних рядків.
Ви можете припустити, що в першому рядку буде нуль або більше пробілів і рівно один .
. Подальші рядки, якщо такі є, матимуть нуль або більше пробілів та нуль чи більше косої риски.
Деталі реалізації
Ваша програма може читати з файлу (вказаного як аргумент командного рядка) або читати зі стандартного введення, за вашою зручністю.
Ваша програма повинна вивести одне число на стандартний вихід. (Так, останній рядок відмінний. Так, число може мати більше однієї цифри.)
Тестові справи
Вхід:
.
Вихід:
1
Зауважте, що тут вхід рівно один байт. Це найменший випадок, з яким ви повинні мати справу.
Вхід:
. \ \ \ \
Вихід:
6
Зауважте, що після цих прорізів немає пробілів.
Вхід:
. / /\\ / \ //\ \/// // \\/ \/\ /\/
Вихід:
0
Вхід:
. / / / \\\ /\\ / \
Вихід:
1
Вхід:
. \ / / \
Вихід:
4
Вхід:
. \ \/\/\/
Вихід:
(anything but a nonnegative number)
Заключними зауваженнями
Це питання схоже на моделювання комп'ютера з більярдною кулькою (на основі гравітації) , але значно простішим, тому, сподіваємось, він зацікавить більше.
У мене в Python є рішення з 169 символами. Я впевнений, що талановиті гольфісти можуть зірвати цей запис на шматки. : ^)
Це код-гольф , тому найкоротша відповідь символами буде прийнята в кінці місяця!