Roboțelul WALL-E este captiv într-un labirint dreptunghiular de dimensiuni . Analizând harta, WALL-E constată că are de-a face cu un labirint extrem de sofisticat. El reușește să identifice următoarele tipuri de celule: W
– celula unde, la început, se află WALL-E, E
- celula care poate fi accesată de WALL-E și care îl poate teleporta pe acesta instantaneu în afara labirintului, într-un loc sigur, .
- celule libere, care pot fi accesate de WALL-E, #
- celule de tip zid, care NU pot fi accesate de WALL-E, +
- celule de tip ușă, care pot fi accesate de WALL-E, dar continuarea deplasării la o celulă vecină se poate face doar după o așteptare de exact secunde, P
- celule de tip portal, care îl teleportează pe WALL-E instantaneu, la întâmplare, într-una dintre celelalte celule de tip portal. Dacă WALL-E accesează o celulă de tip portal, atunci el va fi instantaneu teleportat la o altă celulă de tip portal, iar mai departe el se va deplasa numai într-o celulă vecină cu (nu poate sta pe loc) WALL-E se poate deplasa într-o secundă în oricare dintre cele patru celule vecine: sus, dreapta, jos sau stânga, pe care le poate accesa. De asemenea, roboțelul NU se poate deplasa în afara labirintului decât prin intermediul celulei .
Cerință
Comportamentul haotic al portalurilor îl îngrijorează pe WALL-E, astfel că își propune să afle care este numărul minim de secunde în care, cu certitudine, el va putea părăsi labirintul. Dacă nu se poate determina cu certitudine acest lucru, sau dacă WALL-E nu poate părăsi labirintul, răspunsul va fi .
Date de intrare
În fișierul text walle.in
pe prima linie se află numerele , și , separate prin câte un spațiu. Pe fiecare dintre următoarele linii se află câte un șir cu câte caractere.
Date de ieșire
În fișierul text walle.out
se va scrie, pe prima linie, un număr natural reprezentând răspunsul găsit sau .
Restricții și precizări
- ;
- ;
- Există o singură celulă marcată cu
W
; - Există o singură celulă marcată cu
E
; - Numărul celulelor de tip portal este mai mare sau egal cu ;
- Se garantează că fiecare celulă de tip portal are cel puțin o celulă vecină care poate fi accesată;
- Pentru teste în valoare de puncte labirintul va conține exact portaluri și ;
- Pentru alte puncte labirintul va conține exact portaluri;
- Pentru alte puncte , labirintul va conține cel mult portaluri și ;
- Pentru alte puncte , labirintul va conține cel mult portaluri;
- Pentru alte puncte .
Exemplul 1
walle.in
5 12 3
.....#P..E..
..P..###....
.....+...P..
..W...##....
............
walle.out
5
Explicație
WALL-E se va deplasa în secunde la portalul de la poziția , care îl va teleporta în cel mai defavorabil caz la poziția , de unde în secunde va ajunge la EXIT. Total secunde.
Exemplul 2
walle.in
5 12 3
......P#.E..
..P..###....
.....+...P..
..W...##....
............
walle.out
12
Explicație
WALL-E va merge către EXIT, evitând portalurile și ușa, pe drumul cel mai scurt.
Exemplul 3
walle.in
1 6 3
EPPPWP
walle.out
-1
Explicație
Să presupunem că WALL-E se va deplasa mai întâi la portalul . Este incert ca WALL-E să poată ajunge la portalul , deoarece de la portalul , datorită comportamentului haotic al portalurilor, se poate ajunge la oricare din celelalte trei portaluri, nu doar la portalul , iar apoi teleportarea următoare îl va putea reîntoarce pe WALL-E, din același motiv, la portalul . Analog se va întâmpla dacă WALL-E se va deplasa mai întâi la portalul .