Objetivo
Ordene una lista de elementos para asegurarse de que cada elemento aparezca después de sus dependencias especificadas.
Entrada
Una matriz de matrices de enteros, donde cada entero especifica el índice basado en 0 o en 1 de otro elemento que este elemento debe seguir. La entrada puede ser una matriz o cadena o cualquier otra cosa legible por humanos.
Por ejemplo, una entrada basada en 0:
[
[ 2 ], // item 0 comes after item 2
[ 0, 3 ], // item 1 comes after item 0 and 3
[ ], // item 2 comes anywhere
[ 2 ] // item 3 comes after item 2
]
Suponga que no hay dependencias circulares, siempre hay al menos un pedido válido.
Salida
Los números en orden de dependencia. Un orden ambiguo no tiene que ser determinista. La salida puede ser una matriz o texto o cualquier otra cosa legible por humanos.
Solo se debe dar un pedido en la salida, incluso cuando hay varios pedidos válidos.
Las salidas posibles para la entrada anterior incluyen:
[ 2, 3, 0, 1 ]
[ 2, 0, 3, 1 ]
Puntuación
Una función o programa que completa esto en el menor número de bytes gana la gloria de la aceptación. La fecha límite es en 6 días.