labirint

Time limit: 0.2s Memory limit: 32MB Input: labirint.in Output: labirint.outPoints by default: 10p

Vasilică vizitează cetățile medievale. Fiind curios, el încearcă să descopere pasajele secrete și ascunzătorile. Din nefericire, s-a rătăcit și a ajuns într-o sală din care nu poate ieși decât trecând printr-un labirint. Există o hartă a labirintului, o matrice de nn linii și mm coloane, un element din această matrice reprezentând o cameră. Deplasarea în labirint se poate face numai prin camerele adiacente pe orizontală și verticală. Intrările în labirint sunt notate cu A, ieșirile cu C, iar camerele zidite (inaccesibile) cu Z. Ieșirea din labirint se poate face din una din camerele C, în fiecare astfel de cameră existând câte un elicopter încuiat. Toate elicopterele se deschid cu aceeași cheie, câte un exemplar al cheii aflându-se în camerele B. Trecerea în altă cameră va dura 11 unitate de timp. Pentru a ieși din labirint Vasilică intră pe una din intrările notate cu A, ia cheia dintr-o cameră B și iese din labirint printr-o cameră C. El va intra în camera A la timpul 11. Camerele de tip A pot fi situate oriunde pe hartă. În drumul de la o cameră de tip A către o cameră de tip B se poate trece printr-o cameră de tip C fără a se ieși din labirint.

Cerinţă

Ajutați-l pe Vasilică să iasă cât mai repede din labirint.

Date de intrare

Fişierul labirint.in conţine pe prima linie numărul nn de linii şi numărul mm de coloane ale hărții, iar pe următoarele nn linii, câte mm caractere, reprezentând elementele acesteia. Caracterele pot fi _, A, B, C, Z cu semnificația din text. _ reprezintă o cameră fără restricții (liberă).

Date de ieşire

Pe prima linie a fişierului de ieşire labirint.out se va scrie numărul ce reprezintă timpul cel mai scurt în care Vasilică poate să iasă din labirint.

Restricţii şi precizări

  • 1n,m1 0001 \leq n , m \leq 1 \ 000
  • întotdeauna există un drum de ieșire
  • operația de luare a cheii sau a elicopterului dintr-o cameră nu consumă timp

Exemplu

labirint.in

5 6
ZA____
A__Z__
A_C__B
C___Z_
___B_Z

labirint.out

9

Explicație

Timpul cel mai scurt în care Vasilică poate să iasă din labirint este de 99 unități și avem două variante: plecăm din A(3,1)A(3,1) la timpul 11 și ajungem în B(3,6)B(3,6) sau în B(5,4)B(5,4) la timpul 66 (luăm cheia) și ieșim prin C(3,3)C(3,3) la timpul 99.

Log in or sign up to be able to send submissions!