페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2121

15퍼즐 1s 64MB

문제

15퍼즐은 유명한 문제다. N x N의 보드에서 정사각형 타일을 이리 저리 밀어서 다음과 같은 모양을 만드는게 퍼즐의 목적이다.

 

위에서 '.'표시는 아무것도 타일이 존재하지 않는 칸이다.

 

맞추고 있는 퍼즐이 주어졌을 때, 각 타일들과 목표위치 사이의 맨하탄거리(행의 차이와 열의 차이를 더한 값)의 합을 알아내는 프로그램을 작성하라.


입력

입력은 4개의 줄에 4개의 문자가 입력된다. 문자는 'A' 부터 'O'가 입력되며, 이는 현재 퍼즐의 상태를 뜻한다. 빈칸은 '.'로 입력된다.


출력

목표 위치에 대한 맨하탄거리의 합을 출력한다.


예제 #1

ABCD

EFGH
IJKL
M.NO
2

예제 #2

.BCD

EAGH
IJFL
MNOK
6

출처

COCI 2006/2007 contest3 2

로그인해야 코드를 작성할 수 있어요.