你正在為一艘自主火箭動力氣墊船編寫程式。這艘船可以行駛得非常、非常快,但轉向很困難。由於它懸浮在地面上,因此它透過啟動定向推進器來轉向;無論它正在前進還是靜止,這些推進器都能使船轉向。
你進行測試的鹽灘已用 $\text{2D}$ 笛卡兒座標網格標示。氣墊船從這個網格上的位置 $(0,0)$ 出發,朝向 $X$ 軸正方向。你的任務是讓船抵達鹽灘上的另一個位置 $(x,y)$。
氣墊船的固定對地速度為每秒 $v$ 英里,固定旋轉速率為每秒 $w$ 弧度。由於火箭在加速和減速時的強大推力,它幾乎可以瞬間達到最高速度,也可以同樣迅速地從最高速度停下。同樣地,它可以瞬間開始以固定速率旋轉,也可以同樣迅速地停止旋轉。它可以順時針或逆時針旋轉。
你必須求出讓船抵達目標所需的最短時間。控制船的程式可以開始前進、停止前進、開始旋轉和停止旋轉,每種操作都恰好執行一次。注意,開始/停止前進可以與開始/停止旋轉各自獨立進行。
輸入格式
每筆測試資料恰好包含兩行。
第一行包含兩個以空格分隔的整數 $x$ 和 $y$($−1,000 \leq x, y \leq 1,000,(x,y)\ne(0,0)$),表示你想抵達的鹽灘網格位置,單位為英里。
輸入的第二行包含兩個以空格分隔、恰好有兩位小數的實數:$v$($0.01 \leq v \leq 10.00$)和 $w$($0.01 \leq w \leq 10.00$)。其中 $v$ 是固定行駛速度,單位為英里/秒;$w$ 是往任一方向旋轉的固定速率,單位為弧度/秒。
輸出格式
輸出一個實數,表示在上述限制下,氣墊船從 $(0,0)$ 抵達 $(x,y)$ 所需的最短時間(秒)。若你的答案的絕對誤差不超過 $10^{−3}$,便會被接受。
範例
輸入格式 1
20 0
1.00 0.10
輸出格式 1
20.00000000
輸入格式 2
-10 10
10.00 1.00
輸出格式 2
3.14159265
輸入格式 3
0 20
1.00 0.10
輸出格式 3
28.26445910
輸入格式 4
-997 -3
5.64 2.15
輸出格式 4
177.76915187