나이트의 여행

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

요약
원점에서 목표 칸 (x, y)까지 나이트가 움직여야 하는 최소 이동 횟수를 각 테스트마다 구합니다. 좌표의 절댓값은 10억 이하입니다.
난이도

보통10점 중 7점

유형
수학, 그리디, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

체스에서 나이트는 한 번에 가로로 두 칸·세로로 한 칸을 이동하거나, 가로로 한 칸·세로로 두 칸을 이동할 수 있다. 따라서 크기가 무한한 체스판에서 나이트가 (0,0)(0, 0) 에 놓여 있다면, 한 번의 이동으로 (1,2)(1, 2), (−1,2)(-1, 2), (1,−2)(1, -2), (−1,−2)(-1, -2), (2,1)(2, 1), (−2,1)(-2, 1), (2,−1)(2, -1), (−2,−1)(-2, -1) 중 한 칸으로 갈 수 있다.

두 정수 xx 와 yy 가 주어졌을 때, 무한히 큰 체스판에서 나이트가 (0,0)(0, 0) 에서 (x,y)(x, y) 까지 이동하는 데 필요한 최소 이동 횟수를 구하는 프로그램을 작성하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄에 두 정수 xx 와 yy 가 공백으로 구분되어 주어진다. 두 값의 절댓값은 모두 십억(10910^9)을 넘지 않는다.

입력의 마지막 줄에는 END 가 주어져 입력의 끝을 나타낸다.

출력

각 테스트 케이스마다, 나이트가 (0,0)(0, 0) 에서 (x,y)(x, y) 로 이동하는 데 필요한 최소 이동 횟수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    1 2
    2 4
    END
    
    예상 출력
    1
    2