Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
KC023 - Labirynt |
Napisz program, który sprawdza, czy z danego labiryntu można wyjść.
Wejście
Na wejście programu podana zostanie pewna nieokreślona ilość 100-znakowych łańcuchów, rozdzielonych znakiem nowej linii. Każdy z łańcuchów opisuje zawartość labiryntu. Labirynt ma kształt planszy o wymiarach 10 na 10; pole o współrzędnych (i,j) jest puste lub zajęte w zależności od tego, czy znakiem o numerze 10*i+j jest O czy X. Na polu (0,0) znajduje się wejście do labiryntu; pole (9,9) zawiera wyjście.
Wyjście
Na wyjściu programu ma się pojawić ciąg binarny, którego i-ty element jest równy 1 wtedy i tylko wtedy, gdy można wyjść z i-tego wczytanego z wejścia labiryntu. (Z labiryntu można wyjść, jeżeli znajdując się na początku w wejściu można przejść do wyjścia przechodząc wyłącznie przez puste pola i poruszając się wyłącznie pionowo lub poziomo.) Poszczególne elementy tego ciągu należy rozdzielić znakami nowej linii.
Przykład
Wejście:
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOXXXXXXXXXXOOOOOOOOOOXXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
Wyjście:
1
0
Dodane przez: | Robert Janczewski |
Data dodania: | 2007-12-16 |
Limit czasu wykonania programu: | 10s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET |