Istnieje dobrze znane twierdzenie, że dowolną permutację można rozłożyć na zbiór cykli . Twoim zadaniem jest napisanie możliwie najkrótszego programu.
Wejście:
Dwie linie. Pierwszy zawiera liczbę N
, drugi zawiera N
wyraźne liczby całkowite w zakresie [0,N-1]
oddzielone spacjami. Te liczby całkowite reprezentują permutację N
elementów.
Wynik:
Jedna linia dla każdego cyklu w permutacji. Każdy wiersz powinien być oddzieloną spacjami listą liczb całkowitych w kolejności cyklicznej.
Cykle mogą być wyprowadzane w dowolnej kolejności, a każdy cykl może być generowany od dowolnej pozycji.
Przykład 1:
8
2 3 4 5 6 7 0 1
To wejście koduje permutację 0-> 2, 1-> 3, 2-> 4, 3-> 5, 4-> 6, 5-> 7, 6-> 0, 7-> 1. Rozkłada się to na takie cykle:
0 2 4 6
1 3 5 7
Równie poprawne wyjście byłoby
5 7 1 3
2 4 6 0
Przykład 2:
8
0 1 3 4 5 6 7 2
prawidłowe wyjście:
0
1
4 5 6 7 2 3
>C.