PROBLEM E: Labirynt

Transkrypt

PROBLEM E: Labirynt
XIV Dolnośląskie Zawody w Programowaniu Zespołowym,
Wrocław, 21-22. czerwca 2011
PROBLEM E: Labirynt
Problem
Bajtazar postanowił zaprogramować robota, który przejdzie prostokątną planszę z kwadratowymi polami
tej samej wielkości. Na planszy znajdują się ściany oraz, miejsce początkowe i końcowe dla robota. Jeśli
pole nie jest ścianą robot może na nie wjechać, jednak labirynt ma ta własność, że przejechanie takiego
pola zawsze zajmie pewien czas od 1 do 9 sekund. Robot może jechać na wprost, w prawo lub w lewo.
Celem jest dojechanie do pola końcowego w najkrótszym czasie. Robot nie może wyjechać poza planszę.
Czas przejechania pola początkowego i końcowego uznać za pomijalny (zero).
7
X
1
X
2
6
P
1
9
2
6
3
1
X
K
6
1
2
3
1
Dla powyższego przykładu najkrótszy czas przejazdu wynosi 8
Wejście
W pierwszej linii znajdują się dwie liczby N, M (2<=N,M <= 1000) oznaczające szerokość i wysokość
planszy. W kolejnych N liniach znajdują się M-znakowe linie opisujące planszę. Cyfry ‘1’-‘9’ oznaczają
pole z odpowiednim czasem przejścia. Znak ‘X’ oznacza ścianę, natomiast ‘P’ i ‘K’ odpowiednio pola
początkowe i startowe.
Wyjście
Jedna liczba oznaczająca czas najszybszego przejazdu robota. Jeśli jest to niemożliwe, wypisać -1.
Przykład
Wejście
5 4
7X1X2
6P192
631XK
61231
Wejście
5 4
7XXX2
6PX92
63XXK
61X41
Wyjście
8
Wyjście
-1

Podobne dokumenty