만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

색깔 모으기

시간 제한2초메모리 제한1024 MB

요약
빈 상자 하나와 공 2개씩 든 상자 N개가 주어질 때, 같은 색 공 두 개를 한 상자에 모으는 최소 이동 횟수를 구합니다.
난이도

보통10점 중 7점

유형
그래프, 구현, 그리디
정답자
아직 제출이 없습니다

문제

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

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

같은 색으로 칠해진 공 2개가 같은 상자에 들어가도록 공을 옮겨야 한다. 공을 옮길 때마다 다음 두 조건 중 하나를 만족해야 한다.

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

같은 색깔의 공이 같은 상자에 들어가도록 하는 데 필요한 공의 이동 횟수의 최솟값을 구하라.

위 그림의 경우 다음과 같이 공을 옮기면 6번의 이동으로 목표를 달성한다. 6번보다 적게 옮겨서는 목표를 달성할 수 없다.

  • 4번 상자의 색깔이 3인 공을 6번 상자로 옮긴다.
  • 3번 상자의 색깔이 2인 공을 4번 상자로 옮긴다.
  • 1번 상자의 색깔이 4인 공을 3번 상자로 옮긴다.
  • 2번 상자의 색깔이 3인 공을 6번 상자로 옮긴다.
  • 5번 상자의 색깔이 5인 공을 2번 상자로 옮긴다.
  • 5번 상자의 색깔이 1인 공을 1번 상자로 옮긴다.

입력

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

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

출력

같은 색깔의 공이 같은 상자에 들어가도록 하는 데 필요한 공의 이동 횟수의 최솟값을 첫 번째 줄에 출력한다. 불가능하다면 −1-1을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1≤N≤200 0001 \le N \le 200\,000
  • 1≤Ai,Bi≤N1 \le A_i, B_i \le N
  • 각 ii (1≤i≤N1 \le i \le N)에 대해 A1,⋯ ,AN,B1,⋯ ,BNA_1, \cdots, A_N, B_1, \cdots, B_N 중 정확히 22개의 값이 ii와 같다.

예제3

  1. 예제 1

    입력
    5
    4 1
    3 5
    2 4
    3 2
    5 1
    
    예상 출력
    6
    
  2. 예제 2

    입력
    2
    1 1
    2 2
    
    예상 출력
    0
    
  3. 예제 3

    입력
    4
    2 1
    3 1
    2 4
    3 4
    
    예상 출력
    -1