ACM (Automatic Cleaning Machine) 社ãŒ2011å¹´ã«é–‹ç™ºã—ãŸå…¨è‡ªå‹•å††å½¢æŽƒé™¤æ©Ÿ ICPC (Intelligent Circular Perfect Cleaner) ã¯ï¼Œ æ—¥ä¸ã«è‡ªå‹•ã§å‹•ã出ã—,自分ãŒé€šã‚ŠéŽãŽãŸå ´æ‰€ã®ã‚´ãƒŸã‚’掃除ã™ã‚‹æ©Ÿèƒ½ã‚’å‚™ãˆã¦ã„る. åŠ ãˆã¦ï¼Œã“ã® ICPC ã¯ï¼Œãƒãƒƒãƒ†ãƒªãƒ¼æ®‹é‡ãŒä½Žä¸‹ã—ãŸå ´åˆã«è‡ªå‹•çš„ã«é›»æºã®ä½ç½®ã¾ã§æˆ»ã‚‹æ©Ÿèƒ½ã‚‚å‚™ãˆã¦ã„る.
ã“ã®åº¦ï¼ŒJAG (Japan Alumni Group) ã¨å乗る謎ã®çµ„ç¹”ã‹ã‚‰ï¼Œ ACM 社ã«å¯¾ã—大é‡ã® ICPC ã®ç™ºæ³¨ãŒã‚ã£ãŸï¼Ž ã—ã‹ã—,ãã®ç™ºæ³¨ã«ã¯æ¡ä»¶ãŒä»˜ã„ã¦ã„ãŸï¼Ž ãã‚Œã¯ï¼Œå½¼ã‚‰ãŒæœ¬æ‹ 地ã¨ã—ã¦ã„るビルã®å†…部ã«ã‚る「ãã‚‹ãるドアã€ã« ICPC を対応ã•ã›ã‚‹ã“ã¨ã§ã‚る. ãã‚‹ãるドアã¯ï¼Œä»¥ä¸‹ã«è¿°ã¹ã‚‹ã‚ˆã†ã«å¹³é¢ä¸Šã®ç‰©ä½“ã¨ã—ã¦ãƒ¢ãƒ‡ãƒ«åŒ–ã•ã‚Œã¦ã„る.
ãã‚‹ãるドアã¯ï¼ŒåŽŸç‚¹ã§æŽ¥ç¶šã•ã‚ŒãŸé•·ã• R ã® 2n (≥ 4) æžšã®ãƒ‰ã‚¢ã®çµ„ã¨ã—ã¦è¡¨ã•ã‚Œã‚‹ï¼Ž ã“れらã®ãƒ‰ã‚¢ã¯ï¼Œè§’度 π/n ãŠãã«ä¸¦ã‚“ã§ã„る. ãã‚‹ãるドアã¯æ‰‹å‹•ã§ã‚り,ドアã®ã©ã“ã«è§¦ã‚Œã¦ã‚‚触れãŸæ–¹å‘( ICPC ã¨ã®é‡ãªã‚ŠãŒè§£æ¶ˆã•ã‚Œã‚‹æ–¹å‘)ã¸åŽŸç‚¹ä¸å¿ƒã«ä¸€æ–‰ã«å›žè»¢ã•ã›ã‚‹ã“ã¨ãŒã§ãã‚‹ãŒï¼Œ 平行移動ã•ã›ã‚‹ã“ã¨ã¯ã§ããªã„. åˆæœŸçŠ¶æ…‹ã§ã¯ï¼Œãƒ‰ã‚¢ã®ã¡ã‚‡ã†ã©2枚㌠y 軸ã«å¹³è¡Œã§ã‚る.
ã¾ãŸï¼ŒåŽŸç‚¹ã‚’ä¸å¿ƒã¨ã™ã‚‹åŠå¾„ R ã®å††ã®ã†ã¡ï¼Œy 座標ã®çµ¶å¯¾å€¤ãŒ Rsin(π/(2n)) 以上ã§ã‚る部分ãŠã‚ˆã³ï¼Œ y 軸上㧠y 座標ã®çµ¶å¯¾å€¤ãŒ R 以上ã®éƒ¨åˆ†ã¯å£ã«ãªã£ã¦ã„る. ã“れらã®å£ã¯æŠ¼ã™ã“ã¨ãŒã§ããªã„.
å¹³é¢ä¸Šã§ ICPC ã¯åŠå¾„ r ã®å††ã¨ã—ã¦è¡¨ã•ã‚Œã‚‹ï¼Ž ICPC ã®é›»æºã¯ç‚¹ T = (xt, yt) ã«ã‚り, ICPC ã¯ãã®ä¸å¿ƒåº§æ¨™ãŒé›»æºã®ä½ç½®ã«é‡ãªã£ã¦ã„る時ãƒãƒƒãƒ†ãƒªãƒ¼ã‚’å……é›»ã™ã‚‹ã“ã¨ãŒã§ãる. ã¯ã˜ã‚ã« ICPC ã®ä¸å¿ƒåº§æ¨™ãŒç‚¹ S = (xs, ys) ã¨ãªã‚‹ä½ç½®ã«ã‚ã‚‹ã¨ã, é›»æºã®ä½ç½®ã¾ã§ ICPC ãŒæœ€çŸçµŒè·¯ã‚’通ã£ã¦æˆ»ã‚Œã‚‹ã‚ˆã†ã«ã™ã‚‹ã“ã¨ãŒï¼Œ JAG ã‹ã‚‰å‡ºã•ã‚ŒãŸ ICPC 発注ã®æ¡ä»¶ã§ã‚る. ãªãŠï¼Œ ICPC ãŒãã‚‹ãるドアã«å¯¾ã—ã¦æ£ç¢ºãªæŒ™å‹•ã‚’è¡Œã†ã“ã¨ã‚’確ã‹ã‚ã‚‹ãŸã‚ã«ï¼Œ ICPC ã®åˆæœŸä½ç½®ã¨é›»æºã®ä½ç½®ã¯ï¼Œãã‚‹ãるドアを挟んã§å対å´ã¨ãªã‚‹ã‚ˆã†ã«ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž ACM 社ã¯ï¼Œå‡„腕プãƒã‚°ãƒ©ãƒžãƒ¼ã®ã‚ãªãŸã«ï¼Œãã‚‹ãるドアã®å¯¸æ³•ï¼Œ ICPC ã®ä¸å¿ƒåº§æ¨™ S ã¨åŠå¾„,電æºã®ä½ç½® T ãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ã,ICPCãŒé›»æºã®ä½ç½®ã¸åˆ°é”ã§ãã‚‹ã‹ã‚’判定ã—,到é”å¯èƒ½ãªå ´åˆã¯ ICPC ã®ä¸å¿ƒåº§æ¨™ãŒç§»å‹•ã™ã‚‹æœ€çŸçµŒè·¯ã®é•·ã•ã‚’求ã‚るプãƒã‚°ãƒ©ãƒ ã®ä½œæˆã‚’ä¾é ¼ã—ãŸï¼Ž
入力ã¯ï¼Œè¤‡æ•°ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã‹ã‚‰æ§‹æˆã•ã‚Œï¼Œ1ã¤ã®å…¥åŠ›ã«å«ã¾ã‚Œã‚‹ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã®æ•°ã¯60個以下ã§ã‚る. å„データセットã®å½¢å¼ã¯æ¬¡ã®é€šã‚Šã§ã‚る.
n
r R
xs ys
xt yt
n ã¯ãã‚‹ãるドアを構æˆã™ã‚‹ãƒ‰ã‚¢ã®æžšæ•°ã®åŠåˆ†ã‚’表ã™æ•´æ•°ã§ã‚り,2 ≤ n ≤ 10 ã¨ä»®å®šã—ã¦è‰¯ã„. r, R ã¯ãã‚Œãžã‚Œ ICPC ã®åŠå¾„,ãã‚‹ãるドアã®ä¸€æžšã‚ãŸã‚Šã®é•·ã•ã‚’表ã™æ•´æ•°ã§ã‚り,1以上10以下ã¨ä»®å®šã—ã¦è‰¯ã„.
(xs, ys) 㯠ICPC ã®åˆæœŸä½ç½®ã®ä¸å¿ƒåº§æ¨™ï¼Œ(xt, yt) ã¯é›»æºã®ä½ç½®ã‚’表ã™ï¼Ž xs , ys , xt , yt ã¯ãã‚Œãžã‚Œæ•´æ•°ã§ã‚り,-1,000 ≤ xs ≤ - r - 1, -1,000 ≤ ys ≤ 1,000, r + 1 ≤ xt ≤ 1,000, -1,000 ≤ yt ≤ 1,000 を満ãŸã™ã¨ä»®å®šã—ã¦è‰¯ã„. åŠ ãˆã¦ï¼Œç‚¹ (xs, ys), (xt, yt) ã¯ãã‚Œãžã‚ŒåŽŸç‚¹ã‹ã‚‰è·é›¢ R + r + 10-6 以上離れã¦ã„ã‚‹ã¨ä»®å®šã—ã¦è‰¯ã„. ã™ãªã‚ã¡ï¼Œ ICPC ã¨é›»æºã¯åˆæœŸçŠ¶æ…‹ã§ã„ãšã‚Œã‚‚ãã‚‹ãるドアã®å¤–å´ã«ã‚り,互ã„ã«ãã‚‹ãるドアを挟んã§å対å´ã«ä½ç½®ã—ã¦ã„る.
ã¾ãŸï¼Œr ãŠã‚ˆã³ R ㌠10-6 ã ã‘変化ã—ã¦ã‚‚, ICPC ã®é›»æºä½ç½®ã¸ã®åˆ°é”å¯èƒ½æ€§ã¯å¤‰ã‚らãªã„ã¨ä»®å®šã—ã¦è‰¯ã„.
入力ã®çµ‚ã‚ã‚Šã¯1ã¤ã®ã‚¼ãƒã ã‘ã‹ã‚‰ãªã‚‹è¡Œã§ç¤ºã•ã‚Œã‚‹ï¼Ž
下図ã¯å¾Œã«ç¤ºã™ Sample Input ä¸ã®æœ€åˆã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã«ãŠã‘る, ICPC ã®åˆæœŸä½ç½® S ,電æºä½ç½® T ,ãã‚‹ãるドアãŠã‚ˆã³å£ã®é…置を表ã—ã¦ã„る.
å„データセットã«ã¤ã„ã¦ï¼Œ ICPC ãŒé›»æºã®ä½ç½®ã«åˆ°é”ã§ãã‚‹å ´åˆã¯ï¼Œé›»æºã®ä½ç½®ã¾ã§ã®ç§»å‹•è·é›¢ã®æœ€å°å€¤ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆï¼Ž ã“ã®å ´åˆï¼Œå‡ºåŠ›ã®çµ¶å¯¾èª¤å·®ã¯ 10-6 以内ã§ãªãã¦ã¯ãªã‚‰ãªã„. 到é”ã§ããªã„å ´åˆã¯ï¼Œ-1 ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆï¼Ž
3 1 4 -5 5 5 -5 10 1 10 -10 5 5 -10 5 3 5 -20 0 20 0 8 1 9 -14 58 6 24 2 2 8 -57 -113 42 -31 4 1 4 -4 -5 4 5 0
17.5032106371 41.3850388846 -1 102.0656847372 178.1399151364 19.5548716821