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