Задача
Самый короткий код по количеству символов, чтобы идентифицировать и отмечать понижения воды в представлении ASCII земли с входа.
Ввод будет ASCII-представлением ландшафта, имеющего холмы, долины и плоские земли. Программа должна имитировать то, как выглядел бы пейзаж, если бы был затоплен - заполнение всех долин водой (символ x
).
Пейзаж всегда будет начинаться и останавливаться с символом _
и будет содержать не менее 2 символов, делая самый короткий вход __
.
Холм определяется как повышение и не должен быть заполнен водой:
__
_/ \_
Долина определяется как депрессия и заполняется водой до тех пор, пока не встретится плоская поверхность:
_ _
\__/
Ввод можно считать чистым и будет состоять только из пространства символов (), новой строки (
\n
), подчеркивания (_
) и косой черты вперед и назад (/
и \
). Ввод можно рассматривать как непрерывную линию, и любой вход, содержащий двусмысленные линейные входы, такие как _/_
или
_ _
\_/
/ \
Считается недействительным.
Что касается подводных пещер, уровень воды должен поддерживаться, если уровень пещеры превышает уровень воды.
Тестовые примеры
Input:
__/\__
\__
\ ___ ___________
/ / \_ \_
\_____/ \__ _/
\/
Output:
__/\__
\__
\ ___ ___________
/xxxxxx/ \xxxxxx\_
\xxxxx/ \xxxxx/
\/
Input:
__ ___
/ \_____/
/ _______
________ / \ /
_____/ \ /__ \ \_
____ / \ /__/ __/
\_ / \ ____/
\______\ /____/
Output:
__ ___
/ \xxxxx/
/ _______
________ / \ /
_____/ \xxx/__ \xxxx\_
____ / \xxxx/__/xxxxx/
\xxxxxxxx/ \xxxxxxxxx/
\xxxxxx\ /xxxx/
Input:
__ _
_ ____ ____ _____/ \ /
\ / \ __________/ \ __/ ___ /___\
\___/ \ \ \ \___/ /_
/________\ \___________\
Output:
__ _
_ ____ ____ _____/ \xxx/
\xxxxx/ \xxxxxxxxxxxxxxxxxx/ \xxxxxx/ ___ /xxx\
\xxx/ \xxxxxxx\ \xxx\___/xx/_
/xxxxxxxx\ \xxxxxxxxxxx\
Количество кодов включает ввод/вывод (т.е. полную программу).