Naranjas podridas

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 12
Dificultad Medio Algoritmos
Mostrar (2) BFSMatrices
Enviar solución

Puntos: 10

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

En una caja de \(m \times n\) cada celda está vacía (\(0\)), tiene una naranja fresca (\(1\)) o una podrida (\(2\)). Cada minuto, toda naranja fresca que está al lado (arriba, abajo, izquierda o derecha) de una podrida se pudre.

¿Cuántos minutos pasan hasta que no queda ninguna naranja fresca? Si eso nunca ocurre, la respuesta es \(-1\); si no hay naranjas frescas desde el comienzo, es \(0\).

Entrada

La primera línea tiene \(m\) y \(n\) \((1 \le m, n \le 300)\) y siguen \(m\) líneas con \(n\) valores \(0\), \(1\) o \(2\).

Salida

La cantidad de minutos o \(-1\).

Ejemplo 1

Entrada

3 3
2 1 1
1 1 0
0 1 1

Salida

4

Ejemplo 2

Entrada

3 3
2 1 1
0 1 1
1 0 1

Salida

-1

Ejemplo 3

Entrada

1 2
0 2

Salida

0

Basado en el problema 994 de LeetCode, Rotting Oranges, adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.


Comentarios

No hay comentarios por el momento.