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

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

용의 크룰러

시간 제한10초메모리 제한128 MB

요약
8개 타일로 채운 토러스 배치를 시작 상태에서 목표 상태로 바꾸는 최소 비용 슬라이드 순서를 구합니다.
난이도

보통10점 중 6점

유형
최단 경로, BFS, 그래프
정답자
아직 제출이 없습니다

문제

용의 크룰러는 토러스(도넛 모양의 곡면) 위에서 조각을 미끄러뜨리는 슬라이딩 퍼즐이다. 토러스의 표면은 그림 1의 전개도처럼 정사각형 아홉 칸으로 나뉜다. 전개도에서 같은 문자가 붙은 두 변은 실제로 맞붙어 있으므로 그 변을 사이에 둔 두 칸은 서로 인접하고 변을 공유한다. 어느 칸이 어느 칸과 어떤 방향으로 인접한지는 그림 2에 나와 있다. 1부터 8까지 번호가 붙은 조각 여덟 개를 아홉 칸 중 여덟 칸에 놓고 남은 한 칸은 비워 둔다.

그림 1. 3×33 \times 3 용의 크룰러 토러스

빈 칸과 인접한 칸에 놓인 조각은 빈 칸으로 미끄러뜨릴 수 있다. 퍼즐의 목표는 조각을 여러 번 미끄러뜨려서 주어진 시작 배치를 주어진 목표 배치로 바꾸는 것이다. 그림 3은 가운데 배치에서 가능한 네 가지 미끄러뜨리기로 곧바로 도달하는 배치를 보여 준다. 조각 하나를 한 칸 미끄러뜨리는 비용은 방향에만 좌우되고 칸의 위치나 조각 번호와는 무관하다.

주어진 시작 배치를 주어진 목표 배치로 바꾸는 데 드는 최소 비용을 구하라.

칸좌우로 인접한 칸위아래로 인접한 칸
AB, IG, D
BC, AH, E
CD, BI, F
DE, CA, G
EF, DB, H
FG, EC, I
GH, FD, A
HI, GE, B
IA, HF, C

그림 2. 인접 관계

그림 3. 미끄러뜨리기의 예

평면 정사각형 위의 일부 슬라이딩 퍼즐과 달리 이 토러스에서는 어떤 시작 배치에서도 어떤 목표 배치에 도달할 수 있다고 알려져 있다.

입력

입력은 데이터 집합 최대 30개로 이루어진다.

각 데이터 집합은 일곱 줄이다. 첫 줄에는 양의 정수 chc_h와 cvc_v가 주어진다. chc_h는 조각을 좌우로 한 칸 옮기는 비용이고 cvc_v는 위아래로 한 칸 옮기는 비용이다. 둘 다 100보다 작다. 이어지는 세 줄은 시작 배치를 나타내고 그다음 세 줄은 목표 배치를 나타내며 형식은 다음과 같다.

dA dB dC
dD dE dF
dG dH dI

각 줄은 공백으로 구분한 숫자 세 개로 이루어진다. 숫자 dXd_X는 그림 2의 칸 X의 상태를 나타내고 X는 A부터 I까지 중 하나다. 숫자 1부터 8까지는 그 번호의 조각이 그 칸에 놓여 있다는 뜻이고 숫자 0은 그 칸이 비어 있다는 뜻이다.

입력의 끝은 공백으로 구분한 0 두 개로 나타낸다.

출력

각 데이터 집합마다 목표 배치를 만드는 최소 총비용을 한 줄에 출력한다. 총비용은 시작 배치에서 목표 배치에 이르기까지 조각을 미끄러뜨린 비용의 합이다. 그 밖의 문자는 출력하지 않는다.

예제2

  1. 예제 1

    입력
    4 9
    6 3 0
    8 1 2
    4 5 7
    6 3 0
    8 1 2
    4 5 7
    31 31
    4 3 6
    0 1 5
    8 2 7
    0 3 6
    4 1 5
    8 2 7
    92 4
    1 5 3
    4 0 7
    8 2 6
    1 5 0
    4 7 3
    8 2 6
    12 28
    3 4 5
    0 2 6
    7 1 8
    5 7 1
    8 6 2
    0 3 4
    0 0
    
    예상 출력
    0
    31
    96
    312
    
  2. 예제 2

    입력
    7 50
    1 2 3
    4 5 6
    7 8 0
    0 2 3
    4 5 6
    7 8 1
    50 7
    0 2 3
    4 5 6
    7 8 1
    7 2 3
    4 5 6
    0 8 1
    11 60
    1 2 0
    4 5 6
    7 8 3
    1 2 4
    0 5 6
    7 8 3
    0 0
    
    예상 출력
    7
    7
    11