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

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

기사의 여정

면접 대비

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

요약
n x m 체스판에서 (1,1)에 있는 나이트가 (i,j)까지 가는 최소 이동 횟수를 구하고, 도달할 수 없으면 NEVAR를 출력한다.
난이도

보통10점 중 5점

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

문제

직사각형 체스판은 nn개의 행과 mm개의 열, 즉 모두 n×mn \times m개의 칸으로 이루어져 있습니다. 각 칸은 좌표 쌍 (r,c)(r, c)로 나타내며, rr은 행 번호(1≤r≤n1 \le r \le n), cc는 열 번호(1≤c≤m1 \le c \le m)입니다. 나이트는 왼쪽 아래 칸 (1,1)(1, 1)에서 출발합니다.

나이트는 체스의 일반적인 규칙에 따라 움직입니다. 한 번의 이동에서 한 방향으로 한 칸, 그와 수직인 방향으로 두 칸을 움직입니다(또는 두 칸을 움직인 뒤 한 칸). 즉, 칸 (r,c)(r, c)에서 나이트는 판 위에 있는 다음 여덟 칸 중 어디로든 이동할 수 있습니다: (r±1,c±2)(r \pm 1, c \pm 2)와 (r±2,c±1)(r \pm 2, c \pm 1).

예를 들어 n=4n = 4, m=3m = 3이고 나이트가 칸 (2,1)(2, 1)에 있다면, 한 번의 이동으로 (1,3)(1, 3), (3,3)(3, 3), (4,2)(4, 2) 중 한 칸으로 갈 수 있습니다.

자연수 nn, mm, ii, jj (1≤n≤1001 \le n \le 100, 1≤m≤1001 \le m \le 100, 1≤i≤n1 \le i \le n, 1≤j≤m1 \le j \le m)가 주어집니다. 나이트가 칸 (1,1)(1, 1)에서 출발하여 칸 (i,j)(i, j)에 도달하는 데 필요한 최소 이동 횟수를 구하세요.

그림 1

그림 2

입력

네 정수 nn, mm, ii, jj가 공백으로 구분되어 한 줄에 주어집니다.

출력

나이트가 칸 (1,1)(1, 1)에서 칸 (i,j)(i, j)까지 도달하는 데 필요한 최소 이동 횟수를 출력합니다. 칸 (i,j)(i, j)에 도달할 수 없으면 대신 NEVAR라는 한 단어를 출력합니다.

예제2

  1. 예제 1

    입력
    5 3 1 2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    100 2 2 2
    
    예상 출력
    NEVAR