Problema da matriz do Paint
From AdonaiMedrado.Pro.Br
Contents
Dificuldade Única
Sendo M uma matriz e P um elemento da matriz com o valor V, considera-se que a matriz foi "pintada" corretamente se dado um novo valor K, P e todos os seus elementos vizinhos com o mesmo valor V passarem a ter o novo valor K. Cada novo vizinho pintado deve ser considerado um novo elemento P para o qual a operação descrita deverá novamente ser repetida.
Considere que:
- a posição de P é dada por dois valores x e y. x sendo o índice de coluna e y o de linha, ambos iniciados em zero no local onde normalmente corresponderia ao elemento 1x1 da matriz.
- se P já contiver o valor K, ou seja, V=K, nenhuma operação deverá ser executada.
- são considerados vizinhos os elementos da horizontal, vertical ou diagonais.
Faça uma classe de nome MatrizDoPaint com um método público Pintar que receberá quatro parâmetros nesta ordem:
- Matriz int[][] a ser pintada.
- Posição x do elemento P.
- Posição y do elemento P.
- Novo valor do elemento P (K).
A classe deverá alterar o primeiro parâmetro, executando a "pintura" (alterando os valores conforme descrição).
Exemplo 1
Entrada
{ {1, 1, 3, 0, 0, 0, 1}, {0, 0, 1, 2, 0, 1, 0}, {0, 0, 1, 0, 1, 0, 1}, {9, 6, 3, 1, 0, 1, 0}, {6, 2, 4, 7, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 1}, {0, 1, 9, 6, 0, 1, 0} } , 0, 1, 2
Saída
{ {1, 1, 3, 0, 0, 0, 1}, {2, 2, 1, 2, 0, 1, 0}, {2, 2, 1, 0, 1, 0, 1}, [9, 6, 3, 1, 0, 1, 0}, {6, 2, 4, 7, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 1}, {0, 1, 9, 6, 0, 1, 0} }
Exemplo 2
Entrada
{ {1, 1, 3, 0, 0, 0, 1}, {0, 0, 1, 2, 0, 1, 0}, {0, 0, 1, 0, 1, 0, 1}, {9, 6, 3, 1, 0, 1, 0}, {6, 2, 4, 7, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 1}, {0, 1, 9, 6, 0, 1, 0} } , 0, 0, 2
Saída
{ {2, 2, 3, 0, 0, 0, 2}, {0, 0, 2, 2, 0, 2, 0}, {0, 0, 2, 0, 2, 0, 2}, {9, 6, 3, 2, 0, 2, 0}, {6, 2, 4, 7, 2, 0, 2}, {0, 0, 0, 0, 0, 0, 2}, {0, 1, 9, 6, 0, 2, 0}}