| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 1024 MB | 33 | 10 | 9 | 75.000% |
대전과학고등학교의 독서실에는 큰 원형 테이블이 있고, 그 주위에 일정한 간격으로 $N$개의 좌석이 배치되어 있다. $N$은 홀수이며, 각 좌석은 시계 방향으로 1ドル$번부터 $N$번까지 번호가 매겨져 있다. 예를 들어, $N=7$일 때 독서실의 모습을 그림으로 나타내면 다음과 같다.
모든 좌석에 각각 한 명의 학생이 배정되어 있었지만, 주기적인 좌석 교체 시즌이 찾아오면서 각 학생은 새롭게 배정된 좌석(목표 좌석)으로 이동하게 되었다.
다만, 좌석 이동은 자유롭게 이루어지지 않는다. 다음 규칙을 따르는 질서 있는 좌석 교체 작업이 필요하다.
대전과학고등학교에서는 이러한 질서를 통해 학생들의 이동 동선이 복잡하게 얽히지 않도록 하고자 한다. 이때, 규칙을 준수하면서 모든 학생이 자신의 목표 좌석에 도달할 수 있도록 하기 위해 필요한 최소 라운드 수를 구해 보자.
첫째 줄에 정수 $N$이 주어진다. $(3\leq N\leq 199,円 999;$ $N$은 홀수$)$
둘째 줄에 $N$개의 정수 $b_1,b_2,\cdots,b_N$이 공백으로 구분되어 주어진다. $b_i$는 처음 좌석이 $i$번 좌석이던 학생이 새롭게 배정받은 목표 좌석 번호이다. $(1\leq b_i\leq N;$ 모든 $i≠j$에 대해 $b_i≠b_j)$
규칙을 준수하면서 모든 학생이 목표 좌석에 도달할 수 있도록 하기 위한 최소 라운드 수를 출력한다.
7 7 6 5 3 4 2 1
4
다음과 같은 방법으로 규칙을 준수하면서 4ドル$개의 라운드만에 7ドル$명의 학생이 모두 목표 좌석에 도달할 수 있도록 할 수 있다.
처음 3,ドル 6$번 좌석에 있던 학생을 1ドル$번째 라운드에 배정한다. 각 학생들의 처음 좌석 번호와 목표 좌석 번호를 "처음 좌석 번호 $→$ 목표 좌석 번호"의 형태로 나타내면 각각 3ドル→5,ドル 6ドル→2$ 이며, 시간에 따른 이동 양상은 아래 그림과 같다.
처음 4,ドル 5, 7$번 좌석에 있던 학생을 2ドル$번째 라운드에 배정한다. 각 학생들의 처음 좌석 번호와 목표 좌석 번호를 "처음 좌석 번호 $→$ 목표 좌석 번호"의 형태로 나타내면 각각 4ドル→3,ドル 5ドル→4,ドル 7ドル→1$ 이며, 시간에 따른 이동 양상은 아래 그림과 같다.
처음 1ドル$번 좌석에 있던 학생을 3ドル$번째 라운드에 배정한다. 이 학생의 처음 좌석 번호와 목표 좌석 번호를 "처음 좌석 번호 $→$ 목표 좌석 번호"의 형태로 나타내면 1ドル→7$ 이며, 시간에 따른 이동 양상은 아래 그림과 같다.
처음 2ドル$번 좌석에 있던 학생을 4ドル$번째 라운드에 배정한다. 이 학생의 처음 좌석 번호와 목표 좌석 번호를 "처음 좌석 번호 $→$ 목표 좌석 번호"의 형태로 나타내면 2ドル→6$ 이며, 시간에 따른 이동 양상은 아래 그림과 같다.
4ドル$개보다 적은 라운드 수로 규칙을 준수하면서 모든 학생이 자신의 목표 좌석에 도달할 수 있도록 하는 것은 불가능하다.
7 2 1 4 5 6 7 3
3
5 3 4 5 1 2
1
5 1 2 5 4 3
3
School > 대전과학고등학교 > 제2회 대전과학고등학교 프로그래밍 경진대회 DSHStack K번