Time limit: 2s
Memory limit: 64MB
Input: expansion.in
Output: expansion.out
Se dă o matrice cu linii și coloane umplută cu trei tipuri de valori:
- pătrate goale, marcate cu .
- ziduri, marcate cu #
- personaje, marcate cu
Cerința problemei este una simplă, trebuie să se afle valoarea maximă a lui astfel încât dacă extindem zidurile cu pătrate în toate direcțiile, toate personajele notate cu pot în continuare să ajungă unii la alții. Se garanteaza ca personajele pot ajunge unii la altii inca de la inceput.
Un personaj se poate deplasa pe matrice în cele direcții (sus, jos, stânga, dreapta).
O extindere cu constă în următoarea operație: Pentru fiecare pătrat din matricea inițială marcat cu #, vom marca toate pătratele aflate la distanță cel mult de ele cu #. Cu alte cuvinte, toate pătratele aflate la distanță cel mult de un zid din matricea inițială devin și ele ziduri.
Dacă un caracter este blocat de un zid din cauza extinderii cu , atunci nu putem extinde zidul cu .
Se garantează ca există cel puțin un zid în fiecare test și cel puțin două personaje.
Date de intrare
Pe prima linie a fișierului de intrare expansion.in
se găsesc două numere întregi, și .
Următoarele linii vor conține descrierea matricii, care are linii și coloane și conține caracterele menționate mai sus, reprezentând pătratul de pe linia și coloana .
Date de ieșire
Pe prima linie a fișierului de ieșire expansion.out
se va găsi un singur număr întreg, valoarea lui , conform descrierii din enunt.
Restricții și precizări
- ;
# | Punctaj | Restricții |
---|---|---|
1 | 12 | = # pentru orice și |
2 | 45 | |
3 | 43 | Fără alte restricții |
Exemplul 1
expansion.in
5 5
R...R
.....
..#..
.....
R...R
expansion.out
1
Explicație
Cu roșu am notat zidurile inițiale și cu portocaliu, zidurile obținute ca urmare a extinderilor.
Pentru primul exemplu, toate -urile pot ajunge unul la altul dacă extindem zidurile cu , dar acest lucru va fi imposibil dacă am extinde zidurile cu .
Exemplul 2
expansion.in
2 6
R#.#.R
......
expansion.out
0
Explicație
Pentru al doilea exemplu, dacă am extinde zidurile cu pătrat, -ul din () ar fi prins între ziduri.