Existe un teorema bien conocido de que cualquier permutación puede descomponerse en un conjunto de ciclos . Su trabajo es escribir el programa más corto posible para hacerlo.
Entrada:
Dos lineas. El primero contiene un número N
, el segundo contiene N
enteros distintos en el rango [0,N-1]
separados por espacios. Estos enteros representan una permutación de N
elementos.
Salida:
Una línea para cada ciclo en la permutación. Cada línea debe ser una lista de enteros separados por espacios en orden de ciclo.
Los ciclos se pueden generar en cualquier orden, y cada ciclo se puede generar comenzando en cualquier posición.
Ejemplo 1:
8
2 3 4 5 6 7 0 1
Esta entrada codifica la permutación 0-> 2, 1-> 3, 2-> 4, 3-> 5, 4-> 6, 5-> 7, 6-> 0, 7-> 1. Esto se descompone en ciclos como este:
0 2 4 6
1 3 5 7
Una salida igualmente válida sería
5 7 1 3
2 4 6 0
Ejemplo 2
8
0 1 3 4 5 6 7 2
salida válida:
0
1
4 5 6 7 2 3
>C.