순열은 일련의 주기로 분해 될 수 있다는 잘 알려진 정리가 있습니다 . 당신의 임무는 가능한 가장 짧은 프로그램을 작성하는 것입니다.
입력:
두 줄. 첫 번째는 숫자를 포함 N
하고 두 번째는 공백으로 구분 된 N
범위의 고유 정수를 포함 [0,N-1]
합니다. 이 정수는 N
요소 의 순열을 나타냅니다 .
산출:
순열의 각주기에 대해 한 줄입니다. 각 줄은 공백으로 구분 된 정수 순서의주기 순서 여야합니다.
사이클은 임의의 순서로 출력 될 수 있으며 각 사이클은 임의의 위치에서 시작하여 출력 될 수 있습니다.
예 1 :
8
2 3 4 5 6 7 0 1
이 입력은 순열 0-> 2, 1-> 3, 2-> 4, 3-> 5, 4-> 6, 5-> 7, 6-> 0, 7-> 1을 인코딩합니다. 이것은 다음과 같은 사이클로 분해됩니다.
0 2 4 6
1 3 5 7
똑같이 유효한 출력은
5 7 1 3
2 4 6 0
예 2 :
8
0 1 3 4 5 6 7 2
유효한 출력 :
0
1
4 5 6 7 2 3
>C.