무한 격자 위에서 나선을 그리며 걷는 원숭이의 시작 칸과 방향을 정해 모든 바나나를 지나가게 할 때, 걸음 수의 최솟값을 구한다.
보통7기하구현정렬누적 합아직 제출이 없습니다시간 제한1초메모리 제한128 MB정사각형 칸으로 이루어진 격자에 바나나가 흩어져 있다. 격자는 네 방향으로 끝없이 이어진다. 헬리콥터에서 원숭이 한 마리를 떨어뜨려 바나나를 줍게 하려고 한다. 원숭이를 아무 칸에나 내려놓고 동, 서, 남, 북 네 방향 중 하나를 향하게 하면, 원숭이는 앞으로 한 칸 나아간 뒤 오른쪽으로 돌고, 그 뒤로도 이동 경로가 나선이 되도록 움직인다.
한 번에 직진하는 칸 수는 1,1,2,2,3,3,4,4,… 순서로 늘어나고, 직진을 마칠 때마다 오른쪽으로 90도 돈다. 격자에서 x 좌표는 오른쪽으로, y 좌표는 위쪽으로 커진다. 처음에 위쪽을 향한 원숭이는 한 칸 위로 가고, 오른쪽으로 돌아 한 칸 오른쪽으로 가고, 다시 돌아 두 칸 아래로 가고, 또 돌아 두 칸 왼쪽으로 가는 식으로 계속 움직인다.
아래 그림은 처음에 위쪽을 향했을 때 경로의 앞부분이다.

원숭이는 지나간 칸에 놓인 바나나를 모두 줍는다. 바나나가 있는 칸에 내려놓으면 원숭이가 미끄러져 바나나를 으깨므로, 그런 칸에는 내려놓을 수 없다. 내려놓을 칸과 처음 방향을 마음대로 고를 때, 모든 바나나를 줍는 데 필요한 걸음 수의 최솟값을 구하시오.
첫째 줄에 바나나의 개수 N (1≤N≤100000)이 주어진다.
다음 N개 줄에는 바나나 하나의 좌표 x와 y가 공백을 사이에 두고 주어진다. 좌표는 108보다 작은 자연수이다. 한 칸에 놓인 바나나는 최대 한 개이다.
모든 바나나를 줍는 데 필요한 걸음 수의 최솟값을 자연수 하나로 출력한다.