Informatica Online Judge

  체스(chess) 나이트(knight) 이동 [0932 / 03A4]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 63   Total Tried : 390


The Champion of this Problem (C++) : gs19022 - 0ms / 609byte
My Best Submission (C++) : N/A

[Canadia Computing Competition Junior]

Background

아래와 같은 8*8 체스판에 2개의 좌표가 쌍으로 주어진다. 예를 들어 A위치는 (2,2)이고, B위치는 (4,3)이다.



체스 게임에서 나이트(knight)는 "L"자 형태로 넘어다니는 말이다. 아래 그림에서 K는 나이트가 놓여진 위치를 의미며, 1부터 8로 표시된 위치는 K 위치의 나이트가 한 번에 움직일 수 있는 곳을 나타낸다.



체스 게임의 나이트의 처음 위치와 목적 위치가 주어졌을 때, 목적지까지 움직일 때 필요한 최소 이동 횟수를 출력하는 프로그램을 만들어 보자.

Input

첫 번째 줄에 나이트의 처음 좌표가 2개의 정수로 입력된다.
두 번째 줄에 나이트를 이동시켜야 하는 좌표가 2개의 정수로 입력된다.

[입력값의 정의역]
1 <= 각 좌표값의 정수 <= 8

Output

처음 위치에서 목적 위치로 나이트를 이동시킬 때 필요한 최소 이동 횟수(음수가 아닌 정수)를 출력한다. 단, 나이트는 체스판 밖으로 이동할 수 없다.

IO Example

입력1
2 1
3 3

출력1
1

입력2
4 2
7 5

출력2
2

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]