SIM1010 | Trambuline

This was the problem page during the contest. Access the current page here.
Time limit: 1s Memory limit: 10MB Input: trambuline.in Output: trambuline.out

Ești la o competiție de sărit pe trambulină. În cadrul ultimei probe, ai de parcurs un traseu în care trebuie să treci prin PP puncte de control într-o ordine anume, de la care vei colecta câte o ștampilă.

Traseul este de forma unui dreptunghi de dimensiuni L×CL \times C format din trambuline. Pentru a crește dificultatea traseului, în unele locuri organizatorii au scos trambulinele și au lăsat spații libere unde nu poți să aterizezi.

Inițial sari pe loc la punctul de start, numerotat 00, iar după ce termini de adunat ștampilele trebuie să ajungi la punctul de finiș, numerotat P+1P+1.

Deoarece o componentă importantă a acestei probe este stăpânirea controlul asupra mișcărilor tale, de fiecare dată când sari ai voie să îți lungești sau scurtezi săritura cu cel mult 11, independent în ambele direcții (nord-sud și vest-est).

Poți considera că lungimea unei sărituri spre nord sau vest este reprezentată un număr pozitiv, iar spre sud sau est de un număr negativ. De exemplu, dacă te-ai deplasat cu 11 spre sud la ultima săritură, la următoarea poți sări pe loc, cu 11 spre sud, sau cu 22 spre sud.

Cerință

Care este numărul minim de sărituri pe care trebuie să îl faci pentru a strânge toate ștampilele și a ajunge la poziția de finiș? Pentru a ajunge cu siguranță la poziția de finiș, trebuie ca ultima ta săritură să fie pe loc.

Date de intrare

Pe prima linie a fișierului de intrare trambuline.in se găsesc două numere LL și CC, reprezentând lungimea și lățimea traseului.

Următoarele LL linii vor consta din CC caractere, # reprezentând o trambulină și . un spațiu liber.

Pe linia L+1L+1 un număr PP, reprezentând numărul de puncte de control de pe traseu.

Pe următoarele P+2P+2 linii câte două numere XX și YY, reprezentând poziția de start, poziția celor PP puncte de control și a poziției de finiș.

Date de ieșire

Pe prima linie a fișierului de ieșire trambuline.out se va găsi numărul minim de sărituri necesare pentru terminarea traseului. Dacă acest lucru nu este posibil, afișați imposibil.

Restricții și precizări

  • 1L,C501 \leq L, C \leq 50;
  • 1P51 \leq P \leq 5;
  • Pentru 0iP+10 \leq i \leq P+1, 1XiL1 \leq X_i \leq L și 1YiC1 \leq Y_i \leq C.

Exemplu

trambuline.in

5 5
#####
#...#
#####
#####
#.#.#
1
1 1
5 5
1 4

trambuline.out

9

Explicație

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