반시계 방향 이동

중심에서 시작해 반시계 방향으로 감기는 나선 격자에서 두 칸의 번호가 주어질 때, 두 칸 사이의 맨해튼 거리를 구한다.

보통4수학구현아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

보드 게임을 하나 구상하고 있다. 보드는 번호가 적힌 32001×3200132001 \times 32001개의 칸으로 이루어진다. 한가운데 칸에는 1이 적혀 있고, 나머지 번호는 바깥으로 뻗어 나가는 반시계 방향 나선을 따라 놓인다. 나선은 처음에 아래로 가고, 그다음 오른쪽, 그다음 위, 그다음 왼쪽, 다시 아래로 가는 식으로 이어진다. 아래 그림은 한가운데 25칸을 보여 주고, 힌트의 그림은 한가운데 441칸을 보여 준다.

그림 A.1: 한가운데 25칸.

말은 한 번에 한 칸씩 위, 아래, 왼쪽, 오른쪽으로만 움직인다. 두 칸의 번호가 주어지면 한 칸에서 다른 칸까지 가는 데 필요한 최소 이동 횟수를 구하라.

입력

첫째 줄에 출발 칸의 번호 aa와 도착 칸의 번호 bb가 공백으로 구분되어 주어진다. (1a1091 \le a \le 10^9, 1b1091 \le b \le 10^9)

출력

aa번 칸과 bb번 칸 사이의 최단 거리, 즉 최소 이동 횟수를 출력한다.

힌트

그림 A.2: 한가운데 441칸.