만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

벌집 거리

시간 제한8초메모리 제한1024 MB

요약
육각형 격자에서 좌표 (x, y)가 주어질 때 (0, 0)에서 그 칸까지 가는 최소 이동 횟수를 구합니다.
난이도

보통10점 중 4점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

평면이 정육각형으로 빈틈없이 채워져 있다. 각 정육각형을 셀이라고 한다. 한 번의 이동으로 셀에서 변을 공유하는 인접한 셀 중 하나로 옮겨 갈 수 있다. 중앙 셀에서 지정한 셀까지 가는 데 필요한 최소 이동 횟수를 구한다.

셀은 정수 두 개의 쌍으로 지정한다. 중앙 셀은 (0, 0)이다. 육각형의 변에 수직인 방향 중 하나를 오른쪽 방향으로 정한다. 셀 (x, y)의 오른쪽 인접 셀은 (x+1, y)이고, 오른쪽 위 인접 셀은 (x, y+1)이다. 아래 그림을 참고한다.

그림 C-1: 셀을 지정하는 방법

입력

첫 줄에 데이터셋의 개수 n이 주어진다. n은 100 이하의 양의 정수이다. 이어지는 n개의 줄에 데이터셋이 하나씩 주어진다.

각 데이터셋은 정수 x와 y로 이루어지며, −1000≤x≤1000-1000 \le x \le 1000, −1000≤y≤1000-1000 \le y \le 1000을 만족한다. 목적지 셀은 (x, y)이다.

출력

각 데이터셋에 대해 (0, 0)에서 목적지 셀 (x, y)까지 이동하는 데 필요한 최소 이동 횟수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    7
    0 0
    0 1
    1 0
    2 1
    2 -1
    -3 2
    -1 -3
    
    예상 출력
    0
    1
    1
    3
    2
    3
    4