페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
30000
ms
메모리 제한
1024
MB
순열 에서 순열 사이클이란 다음 조건을 만족하는 정수의 수열 이다.
모든 에 대해 이며, 이들은 서로 다르다.
각 에 대해 이고, 이다.
길이가 인 순열 사이클을 -사이클이라고 한다.
예를 들어, 순열 에는 두 개의 사이클, 즉 -사이클 과 -사이클 이 있다. 는 , , 그리고 이므로 사이클이다.

Grace는 순열 사이클을 매우 좋아하므로, Charles는 그녀에게 도전 과제를 주기 위해 개 레벨로 이루어진 게임을 설계하기로 한다.
게임이 시작될 때 플레이어에게 부터 까지의 정수로 이루어진 길이 의 순열 가 주어진다. 게임의 레벨에는 부터 까지 번호가 매겨져 있다. 각 레벨에서 플레이어는 주어진 순열로 시작하며, 그 안의 임의의 두 원소를 서로 바꾸어 순열을 변경할 수 있다(여러 번 교환할 수 있다). 게임의 번째 레벨을 완료하려면 플레이어는 순열에 -사이클을 만들 수 있는 최소 교환 횟수를 구해야 한다. 플레이어는 번째 레벨을 완료한 후에만 번째 레벨로 진행할 수 있다.
Grace는 게임이 다소 어렵다고 생각하지만, 어떤 대가를 치르더라도 이기고 싶어 한다. 그녀에게는 여러분의 도움이 필요하다! 형식적으로, 각 레벨 에 대해 순열에 -사이클을 만들 수 있는 최소 교환 횟수를 구해야 한다.
시간 제한: 20초. 메모리 제한: 1 GB. . 모든 에 대해 . 모든 는 서로 다르다.
.
.
입력의 첫 번째 줄에는 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 순열의 길이를 나타내는 정수 이 주어진다. 다음 줄에는 개의 정수 , , , 가 주어지며, 번째 정수는 순열 의 번째 원소를 나타낸다.
각 테스트 케이스마다 Case #$x$: $S_1, S_2, \dots, S_N$를 포함하는 한 줄을 출력한다. 여기서 는 테스트 케이스 번호이며 (1부터 시작), 는 게임의 번째 레벨에 대한 답, 즉 순열에 -사이클을 만드는 데 필요한 최소 교환 횟수이다.
2
3
1 2 3
4
4 2 1 3
Case #1: 0 1 2
Case #2: 0 1 0 1
예제 케이스 #1에서 주어진 순열에는 -사이클이 세 개 있다. 따라서 첫 번째 레벨은 교환 없이 완료할 수 있다. 두 번째 레벨을 완료하려면 처음 두 원소를 서로 바꾸어 순열 을 얻을 수 있으며, 이 순열에는 -사이클 이 포함되어 있다. 세 번째 레벨을 완료하려면 처음 두 원소를 서로 바꾼 다음 둘째 원소와 셋째 원소를 서로 바꾸어 순열 을 얻을 수 있으며, 이 순열에는 -사이클 가 포함되어 있다.
예제 케이스 #2에서 앞서 설명했듯이 순열에는 -사이클 가 있다. 따라서 첫 번째 레벨을 완료하는 데 교환이 필요하지 않다. 두 번째 레벨을 완료하려면 마지막 두 원소를 서로 바꾸어 순열 을 얻을 수 있으며, 이 순열에는 -사이클 가 포함되어 있다. 이 순열에는 -사이클 도 있으므로 세 번째 레벨 역시 교환 없이 완료할 수 있다. 네 번째 레벨을 완료하려면 둘째 원소와 넷째 원소를 서로 바꾸어 순열 을 얻을 수 있으며, 이 순열에는 -사이클 가 포함되어 있다.
Copyright Google LLC; sourced from the Google Coding Competitions Archive.
로그인 상태를 확인하는 중입니다.