PivotOJ

색깔 모으기

시간 제한: 2000ms메모리 제한: 1024MB출처: KOI 2024 2차BOJ 32070

문제

2N2N개의 공과 N+1N+1개의 상자가 있다. 공들의 색깔은 1,2,,N1, 2, \cdots, N 중 하나이며, 각 색깔에 대해 그 색깔로 칠해진 공은 정확히 22개 있다. 각 상자는 공을 최대 22개까지 가지고 있을 수 있다. 처음에는 첫 번째 상자부터 NN번째 상자에 각각 22개의 공이 들어 있고, N+1N+1번째 상자는 비어 있다. ii번째 상자의 위에 있는 공의 색깔은 AiA_i이고, 아래에 있는 공의 색깔은 BiB_i이다.

한 상자에서 다른 상자로 공을 옮길 수 있는데, 상자의 가장 위에 있는 공을 빼서 다른 상자의 가장 위에 넣는 작업을 할 수 있다.

여러분은 같은 색으로 칠해진 22개의 공이 같은 상자에 들어가도록 공을 옮겨야 한다. 이때, 공을 옮기는 작업을 할 때마다 다음 두 조건 중 하나를 만족해야 한다.

  • 옮겨서 공을 놓으려는 상자가 완전히 비어 있어야 한다.
  • 옮겨서 공을 놓으려는 상자에 공이 정확히 하나 들어 있고, 이동하려는 공과 해당 상자에 있는 공의 색깔이 같아야 한다.

색깔이 같은 공이 같은 상자에 들어가도록 하기 위해 필요한 공의 이동 횟수의 최솟값을 구하는 프로그램을 작성하라.

예를 들어, 위 그림에서 아래와 같이 공을 옮기면 66번의 이동으로 색깔이 같은 공이 같은 상자에 들어가게 되고, 공을 66번보다 적게 옮겨서 목표를 달성하는 것은 불가능하다.

  • 네 번째 상자의 색깔이 33인 공을 여섯 번째 상자로 옮긴다.
  • 세 번째 상자의 색깔이 22인 공을 네 번째 상자로 옮긴다.
  • 첫 번째 상자의 색깔이 44인 공을 세 번째 상자로 옮긴다.
  • 두 번째 상자의 색깔이 33인 공을 여섯 번째 상자로 옮긴다.
  • 다섯 번째 상자의 색깔이 55인 공을 두 번째 상자로 옮긴다.
  • 다섯 번째 상자의 색깔이 11인 공을 첫 번째 상자로 옮긴다.

입력

첫 번째 줄에 NN이 주어진다.

두 번째 줄부터 NN개의 줄에 걸쳐 각 상자에 들어 있는 두 공들의 색깔이 주어진다. NN개의 줄 중 ii번째 줄에는 Ai,BiA_i, B_i가 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 색깔이 같은 공이 같은 상자에 들어가도록 하기 위해 필요한 공의 이동 횟수의 최솟값을 출력한다.

단, 불가능하다면 1-1을 출력한다.

예제

예제 1

입력
5
4 1
3 5
2 4
3 2
5 1
출력
6

예제 2

입력
2
1 1
2 2
출력
0

예제 3

입력
4
2 1
3 1
2 4
3 4
출력
-1
코드를 제출하려면 로그인하세요.