이스케탐볼라의 술탄은 지름이 모두 다른 차파티를 한 더미로 쌓고 특별한 방법으로 데운 것을 좋아한다. 술탄의 요리사는 아래에 놓인 차파티가 바로 위의 차파티보다 항상 지름이 큰 더미를 데워야 한다. 가장 큰 차파티가 맨 아래, 가장 작은 차파티가 맨 위에 오도록 더미를 정렬하는 방법을 출력하는 프로그램을 작성한다. 차파티의 크기는 지름으로 나타내고, 한 더미에 쌓인 차파티의 지름은 서로 다르다.
더미는 차파티 뒤집기를 여러 번 해서 정렬한다. 뒤집기는 두 차파티 사이에 뒤집개를 넣고 뒤집개에 올라간 부분 더미를 그대로 거꾸로 뒤집는 것이다. 뒤집기는 거꾸로 뒤집을 부분 더미의 맨 아래 차파티 위치로 지정하고, flip(k)로 쓴다. 위치는 더미 전체를 기준으로 세며 맨 아래 차파티가 위치 1, 차파티가 N개인 더미에서 맨 위 차파티가 위치 N이다. 따라서 flip(k)는 위치 k부터 위치 N까지를 거꾸로 뒤집는다.
더미는 차파티가 쌓인 순서대로 지름을 적어서 나타낸다.
차파티 5개가 쌓인 더미에 flip(1), flip(4), flip(3)을 차례로 적용하면 다음 표처럼 변한다.
| 위치 | 처음 | flip(1) 뒤 | flip(4) 뒤 | flip(3) 뒤 |
|---|---|---|---|---|
| 5 (맨 위) | 8 | 2 | 4 | 1 |
| 4 | 6 | 4 | 2 | 2 |
| 3 | 1 | 1 | 1 | 4 |
| 2 | 4 | 6 | 6 | 6 |
| 1 (맨 아래) | 2 | 8 | 8 | 8 |
마지막 열은 아래에서 위로 8, 6, 4, 2, 1이므로 정렬이 끝났다.
첫째 줄에 테스트 케이스의 수 T (1≤T≤1000)가 주어진다.
각 테스트 케이스는 두 줄이다. 첫째 줄에 더미에 쌓인 차파티의 수 N (1≤N≤30)이 주어진다. 둘째 줄에 차파티 N개의 지름이 맨 위 차파티부터 맨 아래 차파티까지 순서대로 공백 하나로 구분되어 주어진다. 각 지름은 1 이상 100 이하의 정수이고, 한 더미 안에서 서로 다르다.
각 테스트 케이스마다 한 줄에 Case #x:를 출력하고 공백 하나를 둔 다음, 뒤집기 위치를 공백 하나로 구분해 출력한다. x는 1부터 시작하는 테스트 케이스 번호다. 마지막 뒤집기 위치 다음에는 더 뒤집을 필요가 없다는 뜻으로 0을 출력한다. 더미가 이미 정렬되어 있으면 0만 출력한다.
한 더미를 정렬하는 뒤집기 순서는 여러 가지이므로, 다음 절차가 만드는 순서만 정답으로 인정한다. i를 1부터 N−1까지 1씩 늘리면서 각 i마다 아래를 수행한다.
실제로 수행한 뒤집기를 수행한 순서대로 모두 출력하고, 마지막에 0을 출력한다.