Cerință
Se dă o hartă de care conține spații libere (notate cu .
) și spații ocupate (notate cu #
). Să se răspundă la interogări de forma , unde se dorește să se afle distanța minimă de la celula la celula .
Date de intrare
Pe prima linie se citește numărul .
Pe următoarele linii, se citește matricea , formată din caractere. Fiecare element al matricei poate fi fie .
(punct), fie #
(diez). Nu există spații între caracterele din fiecare linie.
După matrice, se citește un număr întreg , care reprezintă numărul de interogări.
Pe următoarele linii, fiecare linie conține câte patru numere întregi , , și .
Date de ieșire
Pentru fiecare dintre cele interogări, se afișează pe o linie separată rezultatul corespunzător.
Restricții și precizări
- Se recomandă folosirea fastio.
- Dacă nu există soluție, se va afișa
-1
. - Cel mult (rotunjit în sus) din toate celulele sunt ocupate (cu excepția exemplului).
- Testele sunt generate random.
Exemplu
stdin
5
#...#
#....
#.#..
..#..
..#..
5
3 0 3 3
2 1 2 3
0 4 2 4
3 4 2 1
0 1 2 3
stdout
7
4
-1
6
4
Explicație
Pentru prima întrebare, distanța de la celula la celula este . Un drum posibil este următorul: , , , , , , , .
#...#
#***.
#*#*.
1*#2.
..#..