Path finding


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 64M

Authors:
Problem type
Allowed languages
Ada, Assembly, Awk, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Perl, Prolog, Python, Scala, Swift, VB

Descripción
Bessie está varada en una isla desierta del Ártico y quiere determinar todos los caminos que podría tomar para regresar a su pasto. Ha probado su bote y sabe que puede viajar de una isla a otra en 1 unidad de tiempo si una ruta con las corrientes adecuadas conecta a la pareja. Ella ha experimentado para crear un mapa del océano con rutas válidas de un solo salto entre cada par de las islas N (1 <= N <= 100), convenientemente numeradas 1..N. Las rutas son unidireccionales (unidireccionales), debido a la forma en que las corrientes empujan su bote en el océano. Es posible que un par de islas esté conectado por dos rutas que utilizan diferentes corrientes y, por lo tanto, proporcionan una conexión bidireccional. El mapa se encarga de evitar especificar que existe una ruta entre una isla y sí misma. Dada su ubicación inicial M (1 <= M <= N) y una representación del mapa, ayude a Bessie a determinar qué islas están a un 'salto' de distancia, a dos 'saltos' de distancia, y así sucesivamente. Si Bessie puede tomar múltiples caminos diferentes a una isla, considere solo el camino con la distancia más corta. A modo de ejemplo, a continuación se muestran N = 4 islas con conectividad como se muestra (para este ejemplo, M = 1):

   inicio--> 1-------->2
            |         |
            |         |
            V         V
            4<--------3

Bessie puede visitar la isla 1 en el tiempo 0 (ya que M = 1), las islas 2 y 4 en el tiempo 1 y la isla 3 en el tiempo 2. La entrada para esta tarea es una matriz C donde el elemento en la fila r, columna c se llama C_rc (0 <= C_rc <= 1) y, si tiene el valor 1, significa "Las corrientes permiten a Bessie viajar directamente de la isla r a la isla c en una unidad de tiempo". La fila C_r tiene N elementos, respectivamente C_r1..C_rN, cada uno de los cuales es 0 o 1.

Especificación de entrada

  • Línea 1: Dos enteros separados por espacio: N and M. * Líneas 2..N+1: Línea i+1 contine N enteros separados por espacio: C_r.

Especificación de salida

  • Líneas 1..*: La línea i + 1 contiene la lista de islas (en orden numérico ascendente) que Bessie puede visitar en el momento i. No incluya ninguna línea de salida después de que se hayan enumerado todas las islas accesibles.

Ejemplo de entrada
4 1
0 1 0 1
0 0 1 0
0 0 0 1
0 0 0 0

Ejemplo de salida
1
2 4
3


Comments

There are no comments at the moment.