점프하는 임팔라

호수와 중앙 섬, 반지름 1인 돌 S개가 주어질 때, 같은 돌에 두 번 내려앉지 않고 섬과 바깥 가장자리를 두 번 왕복할 수 있는 최소 도약 거리를 구한다.

어려움9이분 탐색그래프기하BFS아직 제출이 없습니다시간 제한8초메모리 제한512 MB

문제

반지름이 LL인 원형 호수의 정확한 중심에 반지름 RR인 원형 섬이 있고, 물속에는 악어가 가득하다. 물 위에는 반지름 11인 원형 돌 SS개가 놓여 있다.

임팔라 블라드는 무리의 지도자 선발 시험을 통과해야 한다. 호수의 바깥 가장자리에서 출발해 섬에 도착하고, 다시 바깥 가장자리로 돌아온 뒤, 한 번 더 섬에 갔다가 바깥 가장자리로 돌아와야 한다. 이동은 도약으로만 하며, 물에 닿으면 그 자리에서 실패한다. 한 물체의 가장자리 끝에서 다른 물체의 가장자리 끝으로 도약할 수 있고, 도약 사이에 방향은 얼마든지 급하게 바꿀 수 있다. 돌 위에 내려앉지 않고 그 위를 뛰어넘어도 된다.

악어는 돌 위에 있는 임팔라를 낚아채지만 섬과 바깥 가장자리에는 손을 뻗지 못한다. 처음 밟는 돌에서는 절대 낚아채지 않으므로, 블라드는 시험 전체에서 같은 돌을 두 번 밟지 않을 때에만 안전하다. 섬과 바깥 가장자리는 몇 번이든 다시 쓸 수 있다.

블라드는 최대 도약 거리 이하의 거리를 원하는 횟수만큼 도약할 수 있다. 시험을 안전하게 마칠 수 있는 최대 도약 거리의 최솟값을 dd라고 하자. 블라드는 정수를 원하므로 d\lceil d \rceil을 출력한다. 적어도 2.012.01만큼 도약해야 한다면 답은 33이다.

입력

첫 줄에 세 정수 LL, RR, SS가 주어진다. LL은 호수의 반지름(4L1094 \le L \le 10^9), RR은 섬의 반지름(1RL31 \le R \le L - 3), SS는 돌의 개수(4S10004 \le S \le 1000)이다.

다음 SS개 줄에는 각각 두 정수 xx, yy가 주어진다. 호수의 중심을 원점으로 했을 때 돌 하나의 중심 좌표이다(x109|x| \le 10^9, y109|y| \le 10^9). 모든 돌은 완전히 물 위에 있다. 돌은 다른 돌이나 섬, 호수의 바깥 가장자리에 닿을 수 있지만 두 물체가 겹치는 경우는 없다.

출력

d\lceil d \rceil을 정수 하나로 출력한다. 블라드가 도약해야 하는 거리는 항상 양수이다.