암스테르담 거리

M개의 방사형 거리와 반지름이 R*y/N인 N개의 반원 운하로 이루어진 반원형 도시에서 두 교차점 사이를 거리와 운하만 따라 이동할 때의 최단 거리를 구한다.

보통5기하그래프최단 경로아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

맨해튼에 사는 친구가 암스테르담에 놀러 왔다. 머무는 기간이 짧아서 친구는 되도록 짧은 시간에 되도록 많은 명소를 보고 싶어 한다. 그러려면 한 명소에서 다른 명소까지 걸어가는 데 얼마나 걸리는지 알아야 한다. 고향에서는 이 계산이 쉽다. 맨해튼은 직사각형 블록이 격자로 놓인 도시라서, 점 m=(mx,my)m = (m_x, m_y)에서 점 n=(nx,ny)n = (n_x, n_y)까지 걸어가는 거리는

nxmx+nymy|n_x - m_x| + |n_y - m_y|

이다. 그러나 암스테르담은 직사각형 격자로 근사하기 어렵다. 운하가 놓인 암스테르담은 반원판에 훨씬 가까운 모양이다. 도심에서 일정한 각도마다 도로가 뻗어 나가고, 원호를 따라 놓인 운하가 일정한 간격으로 도심을 둘러싼다. 교차로는 원형 운하와 도심에서 뻗어 나온 도로가 만나는 지점이다.

그림 1: M=6M = 6, N=5N = 5, R=2.0R = 2.0인 도시 모형과 교차로 (1,3)(1, 3)에서 교차로 (4,2)(4, 2)까지 가는 최단 경로.

도로망을 얼마나 정밀하게 본뜨는지에 따라 도시를 나누는 반원 고리의 수와 부채꼴 조각의 수를 늘리거나 줄인다. 단위 변환 문제를 피하려고 반원의 반지름도 입력으로 받는다. 주어진 근사 모형에서 두 교차로 사이의 거리를 구하는 프로그램을 작성하라.

모형은 부채꼴 조각 MM개로 나뉘므로 도심에서 도로 M+1M + 1개가 뻗어 나가고, 이웃한 두 도로가 이루는 각은 π/M\pi / M이다. 또 반원 고리 NN개로 나뉘므로 yy번 운하의 반지름은 Ry/NR \cdot y / N이다. 교차로 (x,y)(x, y)xx번 도로와 yy번 운하가 만나는 지점이고, 0번 도로와 MM번 도로는 지름의 양 끝이다. 0번 운하는 반지름이 0이므로 (x,0)(x, 0) 꼴의 교차로는 모두 도심의 한 점이다. 이동은 도로와 운하 위로만 한다.

입력

첫째 줄에 정수 MM, NN과 실수 RR이 주어진다.

  • 1M1001 \le M \le 100은 도시 모형을 나눈 부채꼴 조각의 수다.
  • 1N1001 \le N \le 100은 도시 모형을 나눈 반원 고리의 수다.
  • 1R10001 \le R \le 1000은 도시의 반지름이다.

둘째 줄에 정수 axa_x, aya_y, bxb_x, byb_y가 주어진다. 0ax,bxM0 \le a_x, b_x \le M이고 0ay,byN0 \le a_y, b_y \le N이며, 두 교차로 a=(ax,ay)a = (a_x, a_y)b=(bx,by)b = (b_x, b_y)를 나타낸다.

출력

교차로 aa에서 교차로 bb까지 도로와 운하만 따라 이동하는 최단 거리를 한 줄에 출력한다. 값은 소수점 아래 아홉째 자리까지 반올림해 아홉 자리를 모두 적는다. 예를 들어 거리가 22이면 2.000000000을 출력한다.