RoAlgo Contest #1 | expansion

This was the problem page during the contest. Access the current page here.
Time limit: 2s
Memory limit: 64MB
Input: expansion.in
Output: expansion.out

Se dă o matrice cu nn linii și mm coloane umplută cu trei tipuri de valori:

  1. pătrate goale, marcate cu .
  2. ziduri, marcate cu #
  3. personaje, marcate cu RR

Cerința problemei este una simplă, trebuie să se afle valoarea maximă a lui kk astfel încât dacă extindem zidurile cu kk pătrate în toate direcțiile, toate personajele notate cu RR 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 44 direcții (sus, jos, stânga, dreapta).

O extindere cu kk 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 kk de ele cu #. Cu alte cuvinte, toate pătratele aflate la distanță cel mult kk de un zid din matricea inițială devin și ele ziduri.

Dacă un caracter este blocat de un zid din cauza extinderii cu xx, atunci nu putem extinde zidul cu xx.

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, nn și mm.

Următoarele nn linii vor conține descrierea matricii, care are nn linii și mm coloane și conține caracterele menționate mai sus, ai,ja_{i, j} reprezentând pătratul de pe linia ii și coloana jj.

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 kk, conform descrierii din enunt.

Restricții și precizări

  • 1n,m21031 \leq n, m \leq 2 \cdot 10^3;
# Punctaj Restricții
1 12 ai,ja_{i, j} = # pentru orice 2in12 \leq i \leq n-1 și 2jm12 \leq j \leq m-1
2 45 1n,m1001 \leq n, m \leq 100
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 RR-urile pot ajunge unul la altul dacă extindem zidurile cu 11, dar acest lucru va fi imposibil dacă am extinde zidurile cu 22.

Exemplul 2

expansion.in

2 6
R#.#.R
......

expansion.out

0

Explicație

Pentru al doilea exemplu, dacă am extinde zidurile cu 11 pătrat, RR-ul din (1,11, 1) ar fi prins între ziduri.

Contest info

Official contest

Start time: 1687590600000

Total duration: 4h0m0s

Status: Ended

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