Relleno por difusión
Una imagen es una matriz de \(m \times n\) píxeles, cada uno con un color entero. Al "rellenar" desde el píxel \((r, c)\) con el color \(k\), cambian a \(k\) el píxel \((r, c)\) y todos los píxeles que se alcanzan desde él moviéndose arriba, abajo, izquierda o derecha por píxeles del mismo color original que \((r, c)\).
Imprime la imagen después del relleno.
Entrada
La primera línea tiene \(m\) y \(n\) \((1 \le m, n \le 300)\). Siguen \(m\) líneas con \(n\) enteros cada una, los colores \((0 \le v < 2^{16})\). La última línea tiene \(r\), \(c\) y \(k\) \((0 \le r < m,\ 0 \le c < n,\ 0 \le k < 2^{16})\).
Salida
La imagen resultante: \(m\) líneas con \(n\) enteros cada una.
Nota
Una región puede tener \(9 \cdot 10^4\) píxeles: una recursión sin cuidado puede desbordar la pila.
Ejemplo 1
Entrada
3 3
1 1 1
1 1 0
1 0 1
1 1 2
Salida
2 2 2
2 2 0
2 0 1
Ejemplo 2
Entrada
2 3
0 0 0
0 0 0
0 0 0
Salida
0 0 0
0 0 0
Basado en el problema 733 de LeetCode, Flood Fill, adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.
Comentarios