Defenestracja polega na wyrzuceniu kogoś lub czegoś przez okno.
- Wikipedia
Wkład
Dane wejściowe będą się składały z dwóch części:
Plan piętra i osoba w domu / budynku.
v><^przedstawia osobę wskazującą kierunek wskazany przez strzałkę. Dane wejściowe będą zawierać dokładnie jedną osobę.-i|reprezentują ściany i#reprezentują okno.jest pusta przestrzeń.
Ta część danych wejściowych może być traktowana jako pojedynczy ciąg znaków lub tablica / lista / itd. linii. Nigdy nie będzie żadnych spacji końcowych ani wiodących, a wejście zawsze będzie prostokątem.
Przykład:
-----###--- | | | ^ | -----------Liczba całkowita ≥ 1 oznaczająca, jak daleko (w znakach) osoba podróżuje.
Wydajność
Wyjście powinno być
1jeśli dana osoba znajdzie się „wewnątrz” okna (tj. po przesunięciu się do przodu o określoną w danych wejściowych odległość, osoba znajduje się nad a#).2jeśli dana osoba została zdefestytowana (wejdź w kontakt z#a następnie kontynuuj dalej).3jeśli osoba ma trafić do ściany (stykać się z-lub|. Po uderzeniu w ścianę, osoba zatrzyma się i nie kontynuuje się przez niego).0jeśli żadne z powyższych nie jest prawdą (a wszystko, co zrobiła osoba, to podróż przez pustą przestrzeń).
Założenia
Można spełnić wszystkie poniższe warunki:
Osoba nigdy nie będzie podróżować „poza granicami” obszaru wejściowego.
Po defenestrated osoba nigdy nie wejdzie w kontakt z innym
#lub-/|(więc nie trzeba się martwić o tym, czy2i1czy3są zarówno prawdziwe).
Przypadki testowe
Dla następującego „planu piętra”:
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Dla tego planu piętra:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Dla tego planu piętra:
||####|#|#|##|<
In Out
any 3
Ostateczny przypadek testowy:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
Has someone been for-sparta'd?