Module: Busca en profundidad. SFD


Problem

8 /12


DFS recursivo

Problem

Dada una matriz de N (1 <= N <= 100) por M (1 <= M <= 100). La matriz contiene ‘.’ – celdas vacías y ‘#’ – celdas que no pueden ser visitadas. Solo puedes moverte hacia arriba, abajo, izquierda y derecha. Dadas las consultas q: número de fila y número de columna, si esta celda – ‘#’, luego se convierte en ‘.’, de lo contrario – ‘#’. Para cada una de las consultas q, determine si la celda tx;ty es accesible desde la celda Sx;Sy . Salida en cada línea "Sí", si es accesible, y "No" - de lo contrario. Se garantiza que la celda Sx; Sy y la celda tx; ty no son ‘#’ celda en cada solicitud.
Datos de entrada.
En la primera línea ingrese los números Sx (1 <= Sx <= 100), Sy (1 < = Sy <= 100), tx (1 <= tx <= 100), ty (1 <= ty <= 100), N (1 <= N <= 100), M(1 <= M <= 100 ) y q (1 <= q <= 100). Las N líneas siguientes dan una matriz donde ‘.’ – celda vacía y ‘#’ – una celda que no puede ser visitada. Las siguientes q líneas dan el número de fila y el número de columna que se cambiará.
 
Salida.
Imprimir para cada una de las q consultas “Sí”, si de la celda Sx; Sy en la celda tx; ty puede ser golpeado, “No” – de lo contrario.
 
Entrada Salida 1 1 2 3 3 3 2
.##
##.
###
1 2
2 2 No
Sí  
Explicación:
Después de la primera solicitud, la matriz se verá así:
.  .  #
##.
###
No hay pasaje del punto 1;1 al 2;3, por lo tanto, imprimimos “No”.

Después de la segunda solicitud, la matriz se verá así:
.  .  #
# .  .
###
Hay un pasaje del punto 1;1 al 2;3, por lo que mostramos “Sí”. El camino que podemos seguir está resaltado.

(с) Vsevolod Shaldin