정수의 시퀀스가 주어 지거나 0..N
다음과 같이이 시퀀스 의 변환 순열이 더 구체적입니다 .
- 출력 [x] = 역 (입력 [입력 [x]])
- 반복
예를 들어 : [2,1,0]makes [0,1,2]and reversed is [2,1,0]입니다. [0,2,1]되고 [0,1,2]반전 [2,1,0]됩니다.
실시 예 1
In: 0 1 2
S#1: 2 1 0
S#2: 2 1 0
Output: 1
실시 예 2
In: 2 1 0
S#1: 2 1 0
Output: 0
실시 예 3
In: 3 0 1 2
S#1: 1 0 3 2
S#2: 3 2 1 0
S#3: 3 2 1 0
Output: 2
실시 예 4
In: 3 0 2 1
S#1: 0 2 3 1
S#2: 2 1 3 0
S#3: 2 0 1 3
S#4: 3 0 2 1
Output: 3
당신의 임무는 정수의 순열을 취하고 0..N이미 발생한 순열이 발생할 때까지 단계 수를 반환 (또는 출력) 하는 함수 (또는 프로그램)를 정의하는 것 입니다. 경우 X변환을 위해 X그 출력은 제로이어야하는 경우 X에 변형 Y및 Y행이 X(또는 Y) 그 출력이 1이어야한다.
Y -> Y: 0 steps
Y -> X -> X: 1 step
Y -> X -> Y: 1 step
A -> B -> C -> D -> C: 3 steps
A -> B -> C -> D -> A: 3 steps
A -> B -> C -> A: 2 steps
A -> B -> C -> C: 2 steps
A -> B -> C -> B: also 2 steps
테스트 케이스 :
4 3 0 1 2 -> 0 3 4 1 2 -> 4 3 2 1 0 -> 4 3 2 1 0: 2 steps
4 3 2 1 0 -> 4 3 2 1 0: 0 steps
4 3 1 2 0 -> 4 1 3 2 0 -> 4 3 2 1 0 -> 4 3 2 1 0: 2 steps
1 2 3 0 4 -> 4 1 0 3 2 -> 0 3 4 1 2 -> 4 3 2 1 0 -> 4 3 2 1 0: 3 steps
5 1 2 3 0 4 -> 0 5 3 2 1 4 -> 1 5 3 2 4 0 -> 1 4 3 2 0 5 ->
5 1 3 2 0 4 -> 0 5 3 2 1 4: 4 steps
언어는 "기능"을 지원하지 않는 경우에는 공백이 정수의 목록을 구분으로 순서가 같은 주어진 것으로 가정 할 수 0 1 2또는 3 1 0 2한 줄에.
재미있는 사실:
- 시퀀스 0,1,2,3, .., N은 항상 N, ..., 3,2,1,0으로 변환됩니다.
- 시퀀스 N, .., 3,2,1,0은 항상 N, .., 3,2,1,0으로 변환됩니다.
- 시퀀스 0,1,3,2, ..., N + 1, N은 항상 N, ..., 3,2,1,0으로 변환됩니다.
보너스 작업 : 수학 공식을 알아냅니다.
선택적 규칙 :
- 언어의 첫 번째 색인이 0 대신 1 인 경우 순열을 사용할 수 있습니다
1..N(예와 테스트 사례에서 모든 정수에 1을 추가 할 수 있음).
3,0,1,22,3,0,1