Time Limit: 1s
Memory Limit: 128MB
회훈이는 숫자가 쓰여진 블록을 숫자 오름차순 차례대로 배열했다. 숫자는 1 , 2 , 3 , ... , n 이 각각 n개의 블록에 쓰여져있다.
정수는 블록을 보고 회훈이의 결벽증이 짜증나 블록 순서를 마음대로 바꾸어버렸다.
이사실을 안 회훈이는 블록을 원래 상태로 배열하고 싶었다. 이상한 곳에서 결벽증 증상이 발동한 회훈이는 crane이라는 기계를 이용해서 빠르게 블록을 배열하고 싶어졌다.
crane의 기능은 다음과 같다.
1 ~ n 사이의 서로 다른 정수 i , j (j > i, i~j 사이의 블럭의 개수는 항상 짝수)를 골라 i번째 블록부터 j번째 블록에서
앞쪽 블럭 절반과 뒤쪽 블럭 절반을 서로 통채로 swap 시킨다.
ex) 1 4 3 7 6 5 2 8 9 (n = 9)
i = 4 j = 7 ->
1 4 3 5 2 7 6 8 9
i = 1 j = 6 ->
5 2 7 1 4 3 6 8 9
그런데 crane 의 단점이 배터리가 없어서 9^6 = 531441 번의 움직임이 끝나면 꺼진다고 한다. 이 전에 수열 블록을 모두 원래 상태로 돌리고 싶다.
회훈이를 도와 crane의 i,j를 정해주자!
첫번째 라인은 테스트케이스 개수인 t가 주어진다.
각 테스트케이스 첫줄에는 수열의 길이 n (1 <= n <= 10000) 이 주어진다.
다음줄에는 수열이 주어진다. a1 , a2 , ... , an (a1 ~ an 은 1~n 사이의 정수)
각 테스트케이스 별로
크레인의 활동횟수를 출력하고 다음줄부터 활동횟수 줄만큼
i,j 값을 출력한다.
2 6 5 4 6 3 2 1 5 1 2 3 4 5
5 1 2 4 5 5 6 4 5 1 6 0
cjmp1