Naranjas podridas
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