페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
5
ms
메모리 제한
1024
MB
여러분과 친구들은 모두 서로 다른 회사에서 일한다. 하지만 모두가 현재 직장에 만족하는 것은 아닐 수 있다. 그래서 여러분은 자신에게 더 잘 맞는 직장이 있는지 JobAgent에게 알아봐 달라고 요청했다. 몇 가지 계산을 거친 후, JobAgent는 여러분 각자에게 가장 적합한 직장이 무엇인지 나타내는 목록을 가져왔다. 가장 좋은 점은 여러분 각자가 이미 이 직장들 중 하나에서 일하고 있다는 것이다! 훌륭한 직원인 여러분은 대체할 사람 없이 직장을 떠나려 하지 않으며, 어느 때라도 실직 상태가 되려 하지 않는다. 따라서 유일하게 합리적인 해결책은 서로 직장을 반복해서 맞바꾸는 것이다. 모두가 JobAgent가 제안한 직장에 가려면 두 사람이 서로 직장을 몇 번 맞바꾸어야 하는가?
입력의 첫째 줄에는 직장을 바꿀 친구의 수(여러분 자신 포함)를 나타내는 정수 ()가 주어진다.
이어서 정수 개를 포함하는 한 줄이 주어진다. 이 중 번째 정수는 현재 번째 사람에게 가장 잘 맞는 직장을 가진 사람의 번호를 나타낸다. 모든 사람의 번호는 이상 이하이다. 각 직장에 가장 잘 맞는 사람이 정확히 한 명임이 보장된다.
수행해야 하는 직장 맞바꾸기의 최소 횟수를 하나의 정수로 출력한다.
3
3 2 1
1
4
2 3 4 1
3
2
2 1
1
처음에는 아무도 자신에게 맞는 직장에 있지 않다.
세 번 맞바꾸면 모두가 자신에게 맞는 직장에 갈 수 있다.
처음에는 앞의 두 사람이 직장을 맞바꿀 수 있으며, 그러면 모두의 직장은 3 2 4 1이 되고 사람 은 자신에게 맞는 직장을 얻게 된다.
그런 다음 사람 와 가 직장을 맞바꾸면 직장은 3 2 1 4이 된다.
마지막으로 사람 와 만 잘못된 직장에 있으며, 서로 직장을 맞바꾸면 과정을 마칠 수 있다.
Kodsport
로그인 상태를 확인하는 중입니다.