페이지를 불러오는 중…
해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
1024
MB
개의 공과 개의 상자가 있다. 공들의 색깔은 중 하나이며, 각 색깔에 대해 그 색깔로 칠해진 공은 정확히 개 있다. 각 상자는 공을 최대 개까지 가지고 있을 수 있다. 처음에는 첫 번째 상자부터 번째 상자에 각각 개의 공이 들어 있고, 번째 상자는 비어 있다. 번째 상자의 위에 있는 공의 색깔은 이고, 아래에 있는 공의 색깔은 이다.
한 상자에서 다른 상자로 공을 옮길 수 있는데, 상자의 가장 위에 있는 공을 빼서 다른 상자의 가장 위에 넣는 작업을 할 수 있다.
여러분은 같은 색으로 칠해진 개의 공이 같은 상자에 들어가도록 공을 옮겨야 한다. 이때, 공을 옮기는 작업을 할 때마다 다음 두 조건 중 하나를 만족해야 한다.
색깔이 같은 공이 같은 상자에 들어가도록 하기 위해 필요한 공의 이동 횟수의 최솟값을 구하는 프로그램을 작성하라.

예를 들어, 위 그림에서 아래와 같이 공을 옮기면 번의 이동으로 색깔이 같은 공이 같은 상자에 들어가게 되고, 공을 번보다 적게 옮겨서 목표를 달성하는 것은 불가능하다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 2 | |
| 2 | 23 | |
| 3 | 15 | 색이 같은 공이 같은 상자에 들어가도록 공을 옮기는 방법이 존재한다. |
| 4 | 15 | |
| 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
로그인 상태를 확인하는 중입니다.