문제
오늘은 은비의 생일이어서 초대를 받은 서연이는 약속장소로 가려고 한다.
아직 생일선물을 준비하지 못한 서연이는 은비가 좋아하는 ‘시테니깡’ 사탕을 사가지고 가려 한다.
가능한 빨리 약속장소로 가고 싶은 서연이는 스마트폰 앱을 이용하여 '시테니깡' 사탕을 파는 상점을 검색하였다.
서연이와 은비가 사는 도시는 평면 격자구조로 되어있으며 한 위치에서 상하좌우로만 이동할 수 있다.
한 칸 이동할 때 1의 시간이 걸린다.
서연이는 '시테니깡'사탕을 사지 않은 상태에서 은비가 있는 장소를 통과할 수 없음에 유의하라.
앱에 표시된 정보를 이용하여 서현이가 ’시테니깡‘ 사탕을 산 후 약속장소로 이동하는 최단시간을 구하는 프로그램을 작성하시오.
앱에 표시된 정보는 다음과 같다.
0 : 서연이가 이동할 수 있는 곳 1 : 서연이가 이동할 수 없는 곳 2 : 서연이의 현재 위치 3 : 은비와 약속장소 4 : ‘시테니깡’ 사탕을 파는 상점으로 여러 곳이 있을 수 있다.
입력
첫 행에 앱의 너비와 높이를 나타내는 W, H( 1≤ W, H ≤ 1000)가 입력된다. 다음 행부터 H행에 걸쳐 앱에 나타난 정보가 입력된다.
출력
서연이가 ‘시테니깡’ 사탕을 산 후 약속장소까지 가는 최단 시간을 출력하시오.
예제1
입력
84
4 1 0 0 0 0 1 0
0 0 0 1 0 1 0 0
0 2 1 1 3 0 4 0
0 0 0 4 1 1 1 0
출력
11
출처
USACO 2005 December Silver, Mid-Central USA 2013