Фон
Кілька місяців тому пригода у вашому житті тільки-но почалася. Тепер, в цю точну хвилину (так, зараз), після місяців страждань і важкої праці, ви з групою друзів стоїте на вершині світу. Так, ти маєш рацію, ти на саміті Сагармата .
Однак справи йдуть не так добре, як хотілося б. Густий туман оточив вас, і неймовірно поганий шторм іде якнайшвидше. Ви не зафіксували жодної мотузки на підйомі, і ваші сліди були вкриті снігом. Якщо ви хочете вижити (принаймні на сьогоднішній день), вам потрібно вийти звідти якомога швидше, але ви ОБОВ'ЯЗКОВО спочатку знайти спосіб дізнатися, яке обличчя гори - це те, до якого слід спуститися.
На щастя, ви принесли з собою свій супутній телефон, який ви змінили перед поїздкою, щоб ви могли програмувати та виконувати програми в ньому.
Виклик
Ви змогли завантажити на свій телефон карту гори в ASCII старомодно-нечитабельно-на-вершині світу. Ваше завдання - визначити, яке обличчя гори представляє найлегший спуск, щоб ви могли збільшити шанси вижити. Для цього у вас є геніальна ідея кодувати програму на своєму телефоні, яка підкаже, який найпростіший шлях вниз. (Відмова: Цими заходами займалися професіонали. Жоден програміст не постраждав під час цієї розповіді. Будь ласка, не намагайтеся цього робити вдома.)
Карти складаються лише з символів /та \(плюс пробіли та нові рядки). На будь-якій карті вершина гори завжди представлена символом
/\
\/
і з кожної зі сторін ( 1,2,3або 4) вершини ви завжди знайдете "можливий" шлях вниз по горі.
1 /\ 2
3 \/ 4
Маршрути завжди представлені наступним чином:
\
Steep-> / /
/ / <-Flat
/ \
Flat-> \ \
/ \ <-Steep
/\
\/
де кожен новий символ є або одним місцем ліворуч / праворуч від свого попередника. Значення кожного персонажа:
- Якщо коса нахил / люфт паралельна стороні саміту -> вважається "крутою" частиною.
- Якщо коса коса риса нахилу / косою рисою перпендикулярна до верхньої частини -> вважається "плоскою" частиною.
* Для подальшого ознайомлення див. Графіку вище.
Примітка . Сторони можуть мати різну довжину, і символи, що складають вершину, також вважаються частиною їхньої сторони. У разі жеребкування ви можете вибрати будь-який з них.
Стандартні лазівки заборонені.
Вхідні дані
Рядок, що представляє карту гори або звичайний текстовий файл, що містить ту саму інформацію.
Або
C:\....\file.txt
або
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
як рядок є допустимими входами.
Вихідні дані
Як вихід, ви повинні робити або файл в текстовому або на стандартний висновок в ASCII профілю уявлення боку з найменшою середньої крутизни , використовуючи _для плоских деталей і /для крутих частин разом з середньою крутизною в сторону (number of "/")/(total chars).
Приклад виводу для карти вище:
/
___/
/
AS:0.5
Формат не важливий, якщо у вас профіль і середня крутизна.
Оцінка балів
Що? Ви хочете кращої нагороди, ніж врятувати життя свого та свого друга і бути першим програмістом, який коли-небудь програмував на вершині світу? Гаразд ... це код гольфу, тому найкоротша програма в байтах виграє.
Тестові справи
Вхід:
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
Вихід:
/
___/
/
AS=0.5
Вхід:
/
\ /
/ /
\ /
\ /
/ /
/\
\/
\ /
\ \
\ \
\ \
/ /
/
/
Вихід:
______/
AS=0.143 (1/7)
Вхід:
/ \
\ \
/ /
/ \
/\
\/
\ /
\ /
\ /
/ \
Вихід:
/
/
/
_/
AS=0.8