Haced un programa que escriba las permutaciones de con un ciclo exactamente. Suponed que el contenido de la posición indica “la siguiente posición que hay que visitar”.
Por ejemplo, considerad la permutación . En la posición 1 hay un 4, en la posición 4 hay un 5, y en la 5 hay un 1. Así pues, uno de los ciclos de esta permutación es (tiene dos ciclos más). En canvio, la permutación sólo tiene un ciclo: .
Para hacer el problema más interesante, algunas posiciones ya estarán fijadas. Usaremos valores para indicarlo: las posiciones libres tendrán un 0, y las otras el valor ya fijado.
La entrada consiste en un natural seguido de los valores para las posiciones fijadas.
Escribid todas las permutaciones de con un único ciclo que tienen las posiciones fijadas dadas. Siempre habrá al menos una solución.
Podéis escribir las soluciones de este ejercio en cualquier orden.
Input
1 0
Output
(1)
Input
3 0 0 0
Output
(2,3,1) (3,1,2)
Input
6 4 0 6 0 0 0
Output
(4,3,6,2,1,5) (4,5,6,2,3,1) (4,5,6,3,1,2) (4,1,6,3,2,5) (4,3,6,5,2,1) (4,1,6,5,3,2)
Input
7 3 4 0 6 0 1 2
Output
(3,4,5,6,7,1,2)