자카르타의 공원
시간 제한2초메모리 제한512 MB
세 공원에 놓인 N개의 벽돌을 주어진 초기 배치에서 시작해 최대 16개의 목표 배치를 모두 거친 뒤 한 공원에 모으는 최소 비용을 구한다.
문제
자카르타에는 1번 공원, 2번 공원, 3번 공원이라는 세 개의 공원이 있다. 자카르타의 새 주지사는 이 공원들에 벽돌을 쌓아 장식하려고 한다. 자카르타에는 번부터 번까지 번호가 매겨진 개의 벽돌이 있으며, 번호가 작을수록 작은 벽돌이다. 작은 벽돌 위에는 큰 벽돌을 올릴 수 없으므로, 벽돌 위에 벽돌 를 올릴 수 있는 경우는 인 경우뿐이다.
벽돌 배치란 개의 벽돌을 세 공원에 나누어 쌓은 상태를 뜻한다. 각 공원에는 최대 하나의 벽돌 더미만 있어야 하며, 모든 더미는 위의 규칙을 따라야 한다. 예를 들어 일 때, 1번 공원에 벽돌 (위)과 벽돌 (아래)가 있고, 2번 공원은 비어 있고, 3번 공원에 벽돌 이 있는 배치가 가능하다.
배치는 다음 연산을 반복하여 바꿀 수 있다.
- 서로 다른 두 공원 와 를 고른다. 번 공원 더미의 맨 위 벽돌을 번 공원 더미의 맨 위로 옮긴다. 번 공원이 비어 있으면 이 연산은 불가능하고, 옮긴 뒤 번 공원의 쌓기 규칙이 깨지면 이 연산 역시 불가능하다.
- 벽돌을 옮기려면 트럭을 빌려야 하므로, 번 공원에서 번 공원으로 벽돌 하나를 옮길 때마다 만큼의 비용을 낸다. 번 공원에서 번 공원으로 옮기는 비용과 반대 방향 비용은 다를 수 있다.
처음에는 주어진 초기 배치에서 시작한다. 주지사는 정해진 개의 배치를 순서에 상관없이 각각 적어도 한 번씩 보고 싶어 한다. 마지막에는 모든 벽돌이 하나의 공원에 모여 있어야 한다. 주지사의 요구를 만족하는 총비용의 최솟값을 구하라.
형식적으로, 주지사가 보고 싶어 하는 배치를 이라 하자. 다음 조건을 만족하는 배치 수열 () 중 비용이 최소인 것을 찾는다.
- 은 초기 배치이다.
- 보고 싶어 하는 모든 배치 에 대해 인 정수 ()가 존재한다. 방문 순서는 상관없다.
- 에서는 모든 벽돌이 하나의 공원에 쌓여 있다.
- 모든 에 대해 은 에 연산을 한 번 적용하여 얻을 수 있다.
- 이 수열의 비용은 모든 에 대한 에서 로의 변경 비용의 합이다.
입력
첫째 줄에 벽돌의 개수와 보고 싶은 배치의 개수인 두 정수 (, )이 주어진다. 다음 세 줄에는 각 줄에 세 개의 정수가 주어진다. 번째 줄의 번째 정수는 번 공원에서 번 공원으로 벽돌 하나를 옮기는 비용 (, )이다. 다음 세 줄에는 초기 배치가 주어지고, 이어지는 개의 블록에는 주지사가 보고 싶어 하는 배치가 주어진다. 각 블록은 세 줄로 이루어지며, 하나의 배치는 다음 형식으로 적는다.
하나의 배치는 세 줄로 적히며, 번째 줄은 번 공원의 벽돌 개수인 정수 ()로 시작하고, 뒤이어 번 공원의 벽돌 번호를 뜻하는 개의 정수 ()가 주어진다. 모든 에 대해 가 보장되며, 부터 까지의 모든 정수는 세 줄에 합쳐서 정확히 한 번씩 등장한다.
출력
주지사의 요구를 만족하는 최소 총비용을 한 줄에 출력한다.
힌트
첫 번째 경우에 대한 설명
첫 번째 경우에서는 처음에 1번 공원에 벽돌 과 벽돌 가 있고 3번 공원에 벽돌 이 있다. 이므로 모든 벽돌을 하나의 공원에 모으기만 하면 되며, 예를 들어 다음 연산들로 비용 에 달성할 수 있다.
- 벽돌 을 3번 공원에서 2번 공원으로 옮긴다. 비용은 이다.
- 벽돌 을 1번 공원에서 2번 공원으로 옮긴다. 비용은 이다.
- 벽돌 을 2번 공원에서 3번 공원으로 옮긴다. 비용은 이다.
- 벽돌 를 1번 공원에서 2번 공원으로 옮긴다. 비용은 이다.
- 벽돌 을 3번 공원에서 2번 공원으로 옮긴다. 비용은 이다.
이제 모든 벽돌이 2번 공원에 있으며 총비용은 이다. 보다 적은 비용으로는 불가능하다. 연산 횟수를 최소화할 필요는 없음에 유의하라.
두 번째 경우에 대한 설명
두 번째 경우에서는 두 번째로 원하는 배치를 먼저 만족한 뒤 첫 번째 배치를 만족하는 것이 최적이다. 초기 배치에서 두 번째 배치까지는 번의 연산으로 총비용 에 도달할 수 있다. 두 번째 배치에서 첫 번째 배치까지는 번의 연산으로 총비용 에 도달할 수 있다. 첫 번째 배치는 이미 모든 벽돌이 하나의 공원에 모여 있으므로 추가 연산이 필요 없다. 따라서 총비용은 이다.