산악 통로 찾기
면접 대비시간 제한1초메모리 제한128 MB
n x n 격자에서 한 걸음에 높이 차가 2 이하가 되도록 이동하며 시작 높이보다 높은 칸을 밟는 걸음 수를 최소로 하는 경로를 찾는다.
문제
등산가 Alp은 정사각형 모양의 산악 지대에서 북서쪽 모서리에 서 있으며, 반대편인 남동쪽 모서리로 가는 통로를 찾으려고 합니다.
Alp은 지금 산소가 필요 없는 고도에 있습니다. 하지만 이 출발 고도보다 조금이라도 더 높은 고도에서는 산소가 필요합니다. 산소가 필요한 경우, 가로 방향으로 한 걸음 이동할 때마다 산소 1단위를 소모합니다.
북서쪽 모서리는 위치 , 남동쪽 모서리는 위치 입니다. 인 각 지점 의 고도는 정수입니다.
Alp은 가로 방향의 걸음을 이어서 이동합니다. 한 걸음은 북, 남, 동, 서 중 한 방향으로 한 칸 이동하는 것입니다. Alp은 정사각형 영역을 벗어날 수 없으며, 한 걸음에 고도를 단위보다 많이 오르거나 내려갈 수 없습니다. 한 걸음의 출발 지점 또는 도착 지점의 고도가 산소를 필요로 한다면, Alp은 그 걸음에서 산소 1단위를 소모합니다.
에서 까지 이동할 때 Alp이 소모해야 하는 산소의 최소 단위 수를 구하세요. 그러한 통로가 존재하지 않으면 존재하지 않는다고 출력하세요.
입력
첫째 줄에는 Alp이 이동해야 하는 여행의 수를 나타내는 양의 정수 가 주어집니다.
각 여행은 다음과 같이 주어집니다. 여행의 첫째 줄에는 정사각형 지대의 한 변의 길이를 나타내는 정수 ()이 주어집니다. 이어지는 개의 줄에는 각각 한 지점의 고도를 나타내는 정수가 하나씩 주어집니다. 고도는 다음 순서로 나열됩니다:
.
출력
각 여행마다 한 줄을 출력합니다.
통로가 존재하면 소모되는 산소의 최소 단위 수를 출력합니다. 통로가 존재하지 않으면 CANNOT MAKE THE TRIP 메시지를 출력합니다.
연속한 여행의 출력 줄 사이에는 빈 줄 하나를 넣어 구분합니다.