「Miyane!」花は再び助けを都に要求し、この日。花は文化祭のステージショーに天使の役割を果たし、そして彼女は彼女の人間の友達、日向を探すために起こっています。そこで彼女は、日向の家への最短経路を見つける必要があります。
天使たちが住んでいる地域は円形で、ハナは、この円の一番下に住んでいます。円の中心の座標である場合には、手段 (RX、RY) (RのX 、RのY )、その半径が RのR、ハナがで生きる - (R RX、RY) (R X 、RのY - R )。
どうやら、この旅には多くの困難があります。円の外側およびラインの下の両方に配置されている領域 Yが= RY Y = R ハナがこの領域を通過することができないので、yは、海です。そして、円の内側の領域は、天使たちの聖地である、花はどちらも、この領域を渡すことはできません。
しかし、都は、いずれかの最短経路の長さを計算することができません。世界で最も美しい花のために、彼女はこの問題を解決する助けてください!
入力
各テストファイルには、いくつかのテストケースが含まれています。各テストファイルで:
最初の行は、単一の整数含ま T(1 \ルT \ル500)T (1 ≤ T ≤ 5 0 0 テストケースの数です)。
各テストケースは、5つの整数を持つ唯一の行含ま:中心座標 のRX のR X、 RYのRのY、半径 RのRは、日向の家のthecoordinates XのX、 Y 、Y。 テストデータを保証することを Y> RYのY > Rのy及び (X、Y) (X 、Yは)円の外にあります。 (-10 ^ 2 \ルRX、RY、X、Y \ル^ 2.0 10 <R \ル^ 2 10) (- 1 0 2 ≤ のR X 、RのY 、X 、Y ≤ 1 02 、0 < R ≤ 1 0 2 )。
出力
各テストケースについて、あなたは(保管してくださいあなたの答えを持つ1行を印刷する必要があります 4 小数点以下4桁)を。
サンプル入力
2 1 1 1 2 2 1 1 1 1 3
サンプル出力
2.5708 3.8264
質問の意味は、ラウンドを与える円の底部から求め、円正中位置上記外側の円からの最短距離です。
ゲーム、曲がっボードセットは、手計算を直接見ることができます。
コード:
1 // C-単純な幾何学的計算 2の#include <ビット/ STDC ++ H.> 3。 使用した 名前空間STD; 4。 typedefのロング ロングLL; 5。 のconst int型 MAXN 1E5 + = 10 ; 6。 CONST ダブル PI = ACOS( - 1.0 ) 。7 。8 のint main()の 9 { 10 INT T; 11 scanfの(" %のD "、&T)、 12は 、一方(T-- ){ 13は ダブルRX、RY、R、X、Y。 14 のscanf(" %LF%LF%LF%LF%LF "、&RX、およびRY、&R、およびX&Y)。 15 ダブル長さ= 0.0 。 16 であれば((X <= RX-R)||(X> = RX + R)){ 17 であれば(X <= RX- R){ 18 の長さ+ = SQRT((X-(RX-R))*(X - (RX-R))+(Y-RY)*(Y- RY))。 19 長さ+ = 0.5 * PIの*のR。 20 } 21 他{ 22 の長さ+ = SQRT((X-(RX + R))*(X-(RX + R))+(Y-RY)*(Y- RY))。 23 長さ+ = 0.5 * PI * R。 24 } 25 } 26 他{ 27 ダブル D = SQRT((X-RX)*(X-RX)+(Y-RY)*(Y- RY))。 28 ダブル交通; 29 であれば(!X = RX){ 30 ダブル COSR = ABS(X-RX)/ D。 31 交通= ACOS(COSR)-acos(R / D)。 32 } 33 他{ 34 交通= 0.5 * PI-ACOS(R / D)。 35 } 36 交通+ = 0.5 * PI。 37 長さ+ =交通の*のR。 38 長さ+ = SQRT(D *ののDR *のR) 39 } 40 のprintf(" %.4fする\ n " 、長さ)。 41 } 42 }