잘못 배치된 몬스터의 순열이 주어질 때, 모든 몬스터를 제자리에 놓는 데 필요한 최소 교환 횟수를 구한다.
보통4배열그래프구현수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB다크 라이드 놀이기구에서는 좁은 궤도를 달리는 열차가 관람객을 태우고 여러 방을 차례로 지난다. 각 방에는 IT 몬스터가 한 마리씩 있고, 몬스터는 온갖 짓궂은 방법으로 관람객을 놀래키도록 프로그래밍되어 있다. 그런데 알 수 없는 이유로 몇몇 몬스터가 엉뚱한 방에 설치되었다. 몬스터가 아니라 직원인 프레디와 모르시아가 몬스터를 올바른 방으로 다시 옮겨야 한다.
혼란과 위험을 키우지 않으려고 두 사람은 에피소드 단위로 일한다. 한 에피소드에서 두 사람은 서로 다른 방 두 개를 고른다. 프레디가 한 방의 몬스터를 집어 다른 방으로 옮기고, 모르시아는 그 다른 방의 몬스터를 집어 프레디가 방금 몬스터를 꺼낸 방으로 옮긴다. 결국 한 에피소드에서 두 방의 몬스터가 서로 자리를 바꾼다. 에피소드를 몇 번 거친 뒤에는 모든 몬스터가 올바른 방에 있어야 한다. 몬스터를 옮기는 일은 고되기 때문에 두 사람은 에피소드 횟수를 최소로 줄이려 한다.
입력은 여러 개의 테스트 케이스로 이루어지며 파일의 끝에서 끝난다. 각 테스트 케이스는 두 줄이다.
첫째 줄에는 방의 개수 N (1≤N≤2×105)이 주어진다. 방에는 1,2,…,N의 번호가 붙어 있고, 몬스터에도 1,2,…,N의 번호가 붙어 있다. 각 방의 번호는 그 방에 올바르게 설치된 몬스터의 번호와 같다.
둘째 줄에는 현재 각 방에 설치된 몬스터의 번호 N개가 주어진다. 줄의 첫 번째 번호가 가리키는 몬스터는 1번 방에, 두 번째 번호가 가리키는 몬스터는 2번 방에 설치되어 있고, 그다음도 같은 방식이다.
각 테스트 케이스마다 모든 몬스터를 올바른 방에 설치하는 데 필요한 최소 에피소드 횟수를 한 줄에 하나씩 출력한다.