호수와 중앙 섬, 반지름 1인 돌 S개가 주어질 때, 같은 돌에 두 번 내려앉지 않고 섬과 바깥 가장자리를 두 번 왕복할 수 있는 최소 도약 거리를 구한다.
어려움9이분 탐색그래프기하BFS아직 제출이 없습니다시간 제한8초메모리 제한512 MB반지름이 L인 원형 호수의 정확한 중심에 반지름 R인 원형 섬이 있고, 물속에는 악어가 가득하다. 물 위에는 반지름 1인 원형 돌 S개가 놓여 있다.
임팔라 블라드는 무리의 지도자 선발 시험을 통과해야 한다. 호수의 바깥 가장자리에서 출발해 섬에 도착하고, 다시 바깥 가장자리로 돌아온 뒤, 한 번 더 섬에 갔다가 바깥 가장자리로 돌아와야 한다. 이동은 도약으로만 하며, 물에 닿으면 그 자리에서 실패한다. 한 물체의 가장자리 끝에서 다른 물체의 가장자리 끝으로 도약할 수 있고, 도약 사이에 방향은 얼마든지 급하게 바꿀 수 있다. 돌 위에 내려앉지 않고 그 위를 뛰어넘어도 된다.
악어는 돌 위에 있는 임팔라를 낚아채지만 섬과 바깥 가장자리에는 손을 뻗지 못한다. 처음 밟는 돌에서는 절대 낚아채지 않으므로, 블라드는 시험 전체에서 같은 돌을 두 번 밟지 않을 때에만 안전하다. 섬과 바깥 가장자리는 몇 번이든 다시 쓸 수 있다.
블라드는 최대 도약 거리 이하의 거리를 원하는 횟수만큼 도약할 수 있다. 시험을 안전하게 마칠 수 있는 최대 도약 거리의 최솟값을 d라고 하자. 블라드는 정수를 원하므로 ⌈d⌉을 출력한다. 적어도 2.01만큼 도약해야 한다면 답은 3이다.
첫 줄에 세 정수 L, R, S가 주어진다. L은 호수의 반지름(4≤L≤109), R은 섬의 반지름(1≤R≤L−3), S는 돌의 개수(4≤S≤1000)이다.
다음 S개 줄에는 각각 두 정수 x, y가 주어진다. 호수의 중심을 원점으로 했을 때 돌 하나의 중심 좌표이다(∣x∣≤109, ∣y∣≤109). 모든 돌은 완전히 물 위에 있다. 돌은 다른 돌이나 섬, 호수의 바깥 가장자리에 닿을 수 있지만 두 물체가 겹치는 경우는 없다.
⌈d⌉을 정수 하나로 출력한다. 블라드가 도약해야 하는 거리는 항상 양수이다.