아이들
면접 대비시간 제한1초메모리 제한128 MB
n개 칸에 적힌 순열이 주어질 때 모든 어린이가 모든 칸을 방문하게 되는 최소 인접 교환 횟수를 구합니다.
문제
운동장에 폭이 이고 길이가 인 직사각형을 그린 뒤, 이를 개의 정사각형 칸으로 나눕니다. 각 칸에는 부터 까지의 자연수가 하나씩 적혀 있으며 모든 값이 서로 다릅니다 (즉 부터 까지의 순열입니다). 처음에는 각 칸마다 아이가 한 명씩 서 있습니다. 분마다 모든 아이는 자신이 지금 서 있는 칸에 적힌 번호의 칸으로 이동합니다.
이 놀이에 싫증이 난 아이들은 다른 문제를 고민합니다. 놀이를 계속하는 동안 모든 아이가 결국 모든 칸을 한 번씩 밟게 만들고 싶습니다. 이를 위해 서로 이웃한 두 칸 (한 줄 안에서 바로 옆에 붙어 있는 두 칸)에 적힌 숫자를 맞바꿀 수 있습니다. 숫자를 다시 쓰는 데는 시간이 걸리므로 바꾸는 횟수를 최소로 하려고 합니다. 필요한 최소 교환 횟수를 구하세요.
입력
첫째 줄에 정사각형 칸의 개수를 나타내는 정수 ()이 주어집니다. 둘째 줄에는 개의 정수 ()이 주어지며, 는 번째 칸에 적힌 숫자입니다. 모든 값은 서로 다르므로 부터 까지의 순열을 이룹니다.
출력
아이들이 해야 하는 최소 교환 횟수를 정수 하나로 출력합니다.
힌트
이고 칸에 적힌 수가 인 경우에는 번 칸과 번 칸의 숫자를 맞바꾸는 것으로 충분합니다. 그러면 번 칸에서 출발한 아이는 순서로 이동하여 모든 칸을 밟게 됩니다. 따라서 이 경우 최소 교환 횟수는 입니다.