| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 1024 MB | 1182 | 344 | 242 | 31.469% |
2ドルN$개의 공과 $N+1$개의 상자가 있다. 공들의 색깔은 1,ドル 2, \cdots, N$ 중 하나이며, 각 색깔에 대해 그 색깔로 칠해진 공은 정확히 2ドル$개 있다. 각 상자는 공을 최대 2ドル$개까지 가지고 있을 수 있다. 처음에는 첫 번째 상자부터 $N$번째 상자에 각각 2ドル$개의 공이 들어 있고, $N+1$번째 상자는 비어 있다. $i$번째 상자의 위에 있는 공의 색깔은 $A_i$이고, 아래에 있는 공의 색깔은 $B_i$이다.
한 상자에서 다른 상자로 공을 옮길 수 있는데, 상자의 가장 위에 있는 공을 빼서 다른 상자의 가장 위에 넣는 작업을 할 수 있다.
여러분은 같은 색으로 칠해진 2ドル$개의 공이 같은 상자에 들어가도록 공을 옮겨야 한다. 이때, 공을 옮기는 작업을 할 때마다 다음 두 조건 중 하나를 만족해야 한다.
색깔이 같은 공이 같은 상자에 들어가도록 하기 위해 필요한 공의 이동 횟수의 최솟값을 구하는 프로그램을 작성하라.
예를 들어, 위 그림에서 아래와 같이 공을 옮기면 6ドル$번의 이동으로 색깔이 같은 공이 같은 상자에 들어가게 되고, 공을 6ドル$번보다 적게 옮겨서 목표를 달성하는 것은 불가능하다.
첫 번째 줄에 $N$이 주어진다.
두 번째 줄부터 $N$개의 줄에 걸쳐 각 상자에 들어 있는 두 공들의 색깔이 주어진다. $N$개의 줄 중 $i$번째 줄에는 $A_i, B_i$가 공백으로 구분되어 주어진다.
첫 번째 줄에 색깔이 같은 공이 같은 상자에 들어가도록 하기 위해 필요한 공의 이동 횟수의 최솟값을 출력한다.
단, 불가능하다면 $-1$을 출력한다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 2 | $N \le 2$ |
| 2 | 23 | $N \le 20$ |
| 3 | 15 | 색이 같은 공이 같은 상자에 들어가도록 공을 옮기는 방법이 존재한다. |
| 4 | 15 | $N \le 2,000円$ |
| 5 | 45 | 추가 제약 조건 없음. |
5 4 1 3 5 2 4 3 2 5 1
6
2 1 1 2 2
0
4 2 1 3 1 2 4 3 4
-1
Olympiad > 한국정보올림피아드 > KOI 2024 2차대회 > 초등부 3번
Olympiad > 한국정보올림피아드 > KOI 2024 2차대회 > 중등부 2번