아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

색깔이 있는 하노이 탑

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

요약
같은 크기의 원판이 여러 개 있는 하노이 탑을 Rod-1에서 Rod-3으로 옮길 때, 색깔별 순서 조건을 지키는 최소 이동 횟수를 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 재귀, 수학
정답자
아직 제출이 없습니다

문제

이 문제는 잘 알려진 하노이 탑 문제의 변형이다.

원래의 하노이 탑 문제에는 막대기-1, 막대기-2, 막대기-3 세 개의 막대기가 있다. 막대기-1에는 크기가 서로 다른 nn개의 디스크가 내림차순으로 쌓여 있다. 즉, 가장 작은 디스크가 가장 위에, 가장 큰 디스크가 가장 아래에 놓여 있다. 목표는 막대기-1에 있는 모든 디스크를 막대기-3으로 옮기는 것이다. 옮기는 과정에서 한 번에 하나의 디스크만 옮길 수 있으며, 어떤 경우에도 큰 디스크를 작은 디스크 위에 놓아서는 안 된다.

원래의 문제는 다음과 같이 변형된다.

  1. 같은 크기의 디스크가 허용된다. 따라서 디스크를 옮기는 과정에서 어떤 디스크는 크기가 같거나 더 큰 디스크 위에 놓을 수 있다.
  2. 각 디스크는 빨간색(R), 녹색(G), 파란색(B) 중 하나로 칠해져 있다. 같은 크기의 디스크는 항상 같은 색을 가진다.
  3. 같은 크기의 디스크가 둘 이상이면, 디스크의 색에 따라 모든 이동이 끝난 뒤 이들의 상대적인 순서가 정해진다. 빨간색이면 모든 디스크를 옮긴 뒤 같은 크기 디스크의 상대적인 순서가 처음과 반대여야 한다. 파란색이면 모든 디스크를 옮긴 뒤 상대적인 순서가 처음과 같아야 한다. 녹색이면 이동 후의 상대적인 순서는 상관없다. 다만 디스크를 옮기는 중간 과정에서는 이 순서 조건을 만족할 필요가 없다.
  4. 디스크 이동의 총 횟수를 최소화해야 한다.

그림 C.1은 모든 디스크를 옮긴 후, 같은 크기 디스크의 색에 따른 상대적인 순서 조건을 만족하는 예를 보여준다.

그림 C.1

입력

입력은 표준 입력을 사용한다. 첫 번째 줄에 정수 mm (1≤m≤251 \le m \le 25)이 주어진다. mm은 가장 큰 디스크의 지름이다. 이어지는 mm줄에서 ii번째 줄 (1≤i≤m1 \le i \le m)에는 영어 대문자 하나와 정수 kk (≥1\ge 1)가 주어진다. 대문자는 지름이 ii인 디스크의 색을, kk는 같은 크기 디스크의 개수를 나타낸다. R은 빨간색, G는 녹색, B는 파란색이다. 1부터 mm까지 각 지름마다 그 지름을 가진 디스크가 적어도 하나 존재한다.

쌓여 있는 디스크의 총 개수는 50을 넘지 않는다.

출력

출력은 표준 출력을 사용한다. 한 줄에 색에 따른 상대적인 순서 조건을 만족하면서 막대기-1에 있는 모든 디스크를 막대기-3으로 옮기는 데 필요한 최소 이동 횟수를 출력한다.

예제3

  1. 예제 1

    입력
    2
    R 1
    B 3
    
    예상 출력
    9
    
  2. 예제 2

    입력
    3
    G 1
    B 2
    R 3
    
    예상 출력
    11
    
  3. 예제 3

    입력
    5
    G 2
    R 3
    R 2
    G 3
    B 3
    
    예상 출력
    120