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