W świecie sztuki ASCII istnieje woda, ściany mieszające i mechanizmy literowe.
Jesteś w pokoju zbudowanym ze ścian mieszających ( #
znaków):
#######
# #
# #
# #
# ### #
# #
#######
Instalujesz źródło wody S ( S
znak) i zbiornik wody E ( E
znak), który może odbierać wodę z dowolnego kierunku, ale masz tylko jedno źródło S i jeden zbiornik E.
#######
# S #
# #
# #
# ### #
# E #
#######
Musisz więc mądrze wybrać, gdzie umieścić źródło. Właśnie tam wykorzystujesz swoje umiejętności gry w golfa .
Zadanie
Otrzymujesz dane wejściowe składające się z łańcucha reprezentującego pomieszczenie ze źródłem i zbiornikiem:
#######
# S #
# #
# #
# ### #
# E #
#######
Musisz dowiedzieć się, czy woda ostatecznie dotrze do zbiornika. Woda spływa w miarę możliwości w lewo i prawo, jeśli to możliwe. Woda nie gromadzi się, ponieważ nie podnosi się.
Tak więc dla powyższego wejścia wynik jest następujący:
#######
# * #
# * #
#*****#
#*###*#
#**O**#
#######
Woda szczęśliwie dociera do zbiornika, więc musisz podać prawdziwą wartość.
Ale jeśli woda nie dociera do zbiornika:
#######
#S #
# #
# E #
# ### #
# #
#######
#######
#* #
#* #
#* X #
#*### #
#*****#
#######
Następnie musisz podać wartość fałszowania.
Napisz program, aby zdecydować, czy woda ostatecznie dotrze do zbiornika. Twój kod powinien być jak najkrótszy.
Założenia
Załóżmy, że dane wejściowe są zawsze prawidłowe (cały pokój jest zamkniętym prostokątnym obszarem z literami S i E).
Załóżmy, że jako wejście jest tylko jeden pokój.
Przypadki testowe
Twój program powinien zwrócić prawdziwą wartość dla następujących przypadków testowych:
#######
# S #
# #
# #
# ### #
# E #
#######
#######
# S #
# #
# E #
# #
# #
#######
#######
# #
# #
# SE #
# ### #
# #
#######
###############################################
# S #
# #
# #
# #
# ############### #
# #
# ################## ################## #
# #
# #
# ##### #
# E #
###############################################
#######
# S #
# #
# #
# ### #
# # #
### ###
## E ##
# #
#######
Ale wartość fałsz dla następujących przypadków testowych:
#######
#S #
# #
# E #
# ### #
# #
#######
#######
# #
# SE #
# #
# #
# #
#######
#######
# #
# E #
# #
# S #
# #
#######
####################################
# #
# #
# #
#S # E#
####################################
Przedostatni pokój w kategorii True i ostatni pokój w kategorii False zostały bezwstydnie skradzione pożyczone od Koth: Jump and Run przez Manu (który usunął post z piaskownicy).
Ostatni pokój w kategorii True pochodzi od odpowiedzi Martina Buttnera w Retinie .
from
/ to
/ naprawdę (co ułatwia uczestnikom przetwarzanie wszystkich testów sprawy na raz).