誇り高ã勇者ã§ã‚ã‚‹ã‚ãªãŸã¯ã€ã¤ã„ã«é”王ã®å…ƒã¸è¾¿ã‚Šç€ã“ã†ã¨ã—ã¦ã„ãŸã€‚ã—ã‹ã—ã€é”王ãŒã„る玉座ã®é–“ã«è¾¿ã‚Šç€ããŸã‚ã«ã¯ã€é”王ãŒç”¨æ„ã—ãŸæœ€çµ‚マップをクリアã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。
ã“ã®ãƒžãƒƒãƒ—ã«ãŠã„ã¦ã¯ã€å…¨ã¦ã®ã‚‚ã®ãŒã€ä¸Šç©ºã‹ã‚‰è¦‹ãŸäºŒæ¬¡å…ƒå¹³é¢å›³ã®ã‚ˆã†ã«å¤‰åŒ–ã—ã¦ã—ã¾ã†ã€‚人間ã¯ã€ã“ã®ãƒžãƒƒãƒ—ã«ãŠã„ã¦ã¯ã€ãŸã ã®ç‚¹ã«å¤‰å½¢ã—ã¦ã—ã¾ã†ã€‚マップã¯ã€1本ã®ç›´ç·šã«ã‚ˆã£ã¦ã€2ã¤ã®åŒºåŸŸã«åŒºåˆ‡ã‚‰ã‚Œã¦ã„る。ãã—ã¦ã€ã‚る一方ã®åŒºåŸŸã«äººãŒã„ã‚‹ã¨ãã€ã‚‚ã†ä¸€æ–¹ã®åŒºåŸŸã®ã€ç›´ç·šã«å¯¾ã—ã¦ç·šå¯¾ç§°ã¨ãªã‚‹ä½ç½®ã«ã€äººã®é¡åƒãŒæ˜ ã—出ã•ã‚Œã‚‹ã€‚
2ã¤ã®åŒºåŸŸãã‚Œãžã‚Œã«ã¯ã€è¤‡æ•°ã®å»ºç‰©ãŒå˜åœ¨ã™ã‚‹ã€‚建物ã¨è¨€ã£ã¦ã‚‚ã€ã“ã®ãƒžãƒƒãƒ—ã§ã¯ã€ã„ãã¤ã‹ã®ç‚¹ã‚’繋ã„ã§å‡ºæ¥ä¸ŠãŒã‚‹å¤šè§’å½¢ã§ã‚ã‚Šã€è¾ºã§å›²ã¾ã‚ŒãŸå†…å´ã€ãŠã‚ˆã³è¾ºä¸ŠãŒå»ºç‰©ã®å†…部ã¨ãªã‚‹ã€‚建物ã¯ã€äººã¨ã¯é•ã„ã€åˆ¥ã®åŒºåŸŸã«é¡åƒã‚’作り出ã™ã“ã¨ã¯ãªã„。
ã‚ãªãŸãŒã“ã®ãƒžãƒƒãƒ—ã«ä¾µå…¥ã™ã‚‹ã¨ã€é”王ã®é”法ã«ã‚ˆã‚Šã€ã„ãšã‚Œã‹ã®å»ºç‰©ã®å†…部ã«æ‹˜æŸã•ã‚Œã‚‹ã€‚ã‚ãªãŸã¯ã€æ‹˜æŸã•ã‚Œã¦ã„る建物ã®å†…部ã«1ã¤ã ã‘å˜åœ¨ã™ã‚‹è„±å‡ºç‚¹ã«ç§»å‹•ã™ã‚‹ã“ã¨ã§ã—ã‹ã€ãƒžãƒƒãƒ—をクリアã™ã‚‹ã“ã¨ã¯ã§ããªã„。ã•ã‚‰ã«ã€ã‚ãªãŸã¯ã€é”王ã«å‘ªã„ã‚’ã‹ã‘られã€è‡ªèº«ã®å‹•ãを制é™ã•ã‚Œã¦ã„る。ãã®åˆ¶é™ã¨ã¯ã€ã‚ãªãŸã®ã„ã‚‹ä½ç½®ã€ãŠã‚ˆã³ã‚ãªãŸã®é¡åƒã®ä½ç½®ãŒã€ã„ãšã‚Œã‹ã®å»ºç‰©å†…部ã«å˜åœ¨ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„ã¨ã„ã†ã‚‚ã®ã§ã‚る。ã“ã®åˆ¶é™ã•ãˆå®ˆã‚Œã°ã€ã‚ãªãŸã¯è‡ªç”±ã«å»ºç‰©å†…部を移動ã™ã‚‹ã“ã¨ãŒã§ãる。
ã•ã¦ã€ã‚ãªãŸã¯ã€ä¸€åˆ»ã‚‚æ—©ãã“ã®ãƒžãƒƒãƒ—をクリアã—ã€ä¸–界を滅ã¼ã•ã‚“ã¨ã™ã‚‹é”王を打ã¡å€’ã•ãªã‘ã‚Œã°ãªã‚‰ãªã„。ã‚ãªãŸã®åˆæœŸä½ç½®ãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ãã€è„±å‡ºç‚¹ã¸ç§»å‹•ã™ã‚‹ãŸã‚ã®æœ€çŸè·¯ã®è·é›¢ã‚’求ã‚よ。ãŸã ã—ã€è„±å‡ºç‚¹ã¸ç§»å‹•ã§ããªã„å ´åˆã¯ã€æ°¸é マップã‹ã‚‰è„±å‡ºã™ã‚‹ã“ã¨ãŒã§ããšã€æœ½ã¡æžœã¦ã¦ã„ãã®ã¿ã§ã‚る。
入力ã¯è¤‡æ•°ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã‹ã‚‰æ§‹æˆã•ã‚Œã‚‹ã€‚ å„データセットã®å½¢å¼ã¯æ¬¡ã®é€šã‚Šã§ã‚る。
N BUILDING1 ... BUILDINGN SX SY GX GY LX1 LY1 LX2 LY2
入力ã¯ã€å…¨ã¦æ•´æ•°å€¤ã§ã‚る。 ã¾ãŸã€åº§æ¨™æƒ…å ±ã¯ã€å…¨ã¦ -10,000 <= x, y <= 10,000 ã§ã‚ã‚‹ã¨ä»®å®šã—ã¦ã‚ˆã„。
N(1 <= N <= 100)ã¯ã€å»ºç‰©ã®æ•°ã§ã‚る。ãã®æ¬¡ã«ã€N個ã®å»ºç‰©ã®æƒ…å ±ãŒå…¥åŠ›ã•ã‚Œã‚‹ã€‚ BUILDINGiã¯ã€æ¬¡ã®å½¢å¼ã§å…¥åŠ›ã•ã‚Œã‚‹å¤šè§’å½¢ã§ã‚る。
M X1 Y1 ... XM YM
M(3 <= M <= 50)ã¯ã€å¤šè§’å½¢ã®é ‚点数を表ã™ã€‚ 続ã„ã¦M個ã®é ‚点ã€(Xi, Yi)ãŒå時計回りã§å…¥åŠ›ã•ã‚Œã‚‹ã€‚ (Xi, Yi)ã¨(Xi+1, Yi+1)ã®é ‚点を繋ã„ã 線分ãŒå¤šè§’å½¢ã®ä¸€è¾ºã§ã‚る。 ãŸã ã—ã€M番目ã®é ‚点ã¨ã¯ã€1番目ã®é ‚点ãŒç¹‹ãŒã‚‹ã€‚ 多角形ã®é€£ç¶šã™ã‚‹3ã¤ã®é ‚点ã¯ã€ä¸€ç›´ç·šä¸Šã«ä¸¦ã°ãªã„ã‚‚ã®ã¨ä»®å®šã—ã¦ã‚ˆã„。 ã¾ãŸã€å¤šè§’å½¢ã®å„辺ã¯ã€éš£ã‚Šåˆã†è¾ºä»¥å¤–ã¨ã¯ã€æŽ¥è§¦ãƒ»äº¤å·®ã™ã‚‹ã“ã¨ã¯ãªã„よã†ã«å…¥åŠ›ã•ã‚Œã‚‹ã€‚ å„多角形ã¯ã€ä»–ã®å¤šè§’å½¢ã«ã€æŽ¥è§¦ãƒ»äº¤å·®ãƒ»å†…包ã™ã‚‹ã“ã¨ã¯ãªã„。
建物ã®æƒ…å ±ãŒå…¥åŠ›ã•ã‚ŒãŸå¾Œã€å§‹ç‚¹(SX, SY)ã€è„±å‡ºç‚¹(GX, GY)ã®æƒ…å ±ãŒå…¥åŠ›ã•ã‚Œã‚‹ã€‚ 始点ã¨è„±å‡ºç‚¹ã¯ã€å…±ã«åŒã˜å»ºç‰©ã®å†…部ã«å˜åœ¨ã™ã‚‹ã€‚ ãŸã ã—ã€å§‹ç‚¹ã¨è„±å‡ºç‚¹ã®é¡åƒã¯ã€å¿…ãšã—も建物ã®å†…部ã«å˜åœ¨ã™ã‚‹ã¨ã¯é™ã‚‰ãªã„ãŸã‚注æ„ã—ã¦ã»ã—ã„。 ã“ã®å ´åˆã¯ã€ã‚‚ã¡ã‚んマップをクリアã™ã‚‹ã“ã¨ã¯ã§ããªã„。 始点ã¨è„±å‡ºç‚¹ã¯ã€å¿…ãšç•°ãªã‚‹ä½ç½®ã«å˜åœ¨ã™ã‚‹ã€‚
最後ã«ã€ç›´ç·šã®æƒ…å ±ãŒå…¥åŠ›ã•ã‚Œã‚‹ã€‚ ç›´ç·šã¯ã€ç›´ç·šä¸Šã«å˜åœ¨ã™ã‚‹2ã¤ã®ç‚¹(LX1, LY1)ã¨(LX2, LY2)ã«ã‚ˆã‚Šè¡¨ã•ã‚Œã‚‹ã€‚ ã“ã®2ã¤ã®ç‚¹ã¯ã€å¿…ãšç•°ãªã‚‹ä½ç½®ã«å˜åœ¨ã™ã‚‹ã€‚ ç›´ç·šã¯ã€ã„ãšã‚Œã®å»ºç‰©ã¨ã‚‚ã€æŽ¥è§¦ãƒ»äº¤å·®ã—ãªã„ã‚‚ã®ã¨ä»®å®šã—ã¦ã‚ˆã„。
入力ã®çµ‚ã‚ã‚Šã¯ã€0ãŒ1ã¤ã ã‘ã®è¡Œã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
å„データセットã”ã¨ã«ã€å§‹ç‚¹ã‹ã‚‰è„±å‡ºç‚¹ã¾ã§ã®æœ€çŸè·é›¢ã‚’出力ã›ã‚ˆã€‚ 解ç”ã®èª¤å·®ã¯ 0.00000001 (10-8) を超ãˆã¦ã¯ãªã‚‰ãªã„。 精度ã«é–¢ã™ã‚‹æ¡ä»¶ã‚’満ãŸã—ã¦ã„ã‚Œã°ã€å°æ•°ç‚¹ä»¥ä¸‹ã¯ä½•æ¡æ•°å—を出力ã—ã¦ã‚‚構ã‚ãªã„。
脱出点ã¾ã§è¾¿ã‚Šç€ã‘ãªã„å ´åˆã¯ã€"impossible"ã¨å‡ºåŠ›ã›ã‚ˆã€‚
2 3 1 1 2 2 1 2 3 -1 1 -1 2 -2 2 1 1 2 2 0 0 0 1 2 10 1 1 7 1 7 5 5 5 5 3 6 3 6 2 3 2 3 5 1 5 10 -1 1 -1 5 -3 5 -3 3 -2 3 -2 2 -5 2 -5 5 -7 5 -7 1 2 4 6 4 0 0 0 1 2 7 -7 0 -5 0 -4 3 -3 0 -1 0 -1 4 -7 4 3 1 0 7 0 7 4 3 1 5 2 0 0 0 1 0
1.4142135623730951 8.0 impossible
以下ã®å›³ã¯ãã‚Œãžã‚Œã‚µãƒ³ãƒ—ルã®é…置を示ã—ã¦ã„る。 図G-1ã€G-2ã§ã¯ã€èµ¤ã®çµŒè·¯ãŒå‹‡è€…自身ã®çµŒè·¯ã‚’示ã—ã€é’ã®çµŒè·¯ãŒå‹‡è€…ã®é¡åƒã®çµŒè·¯ã‚’示ã™ã€‚ 図G-3ã§ã¯ã€å§‹ç‚¹ã‹ã‚‰è„±å‡ºç‚¹ã¾ã§è¾¿ã‚Šç€ãã“ã¨ã¯ã§ããªã„。
図G-1: 1番目ã®ã‚µãƒ³ãƒ—ル
図G-2: 2番目ã®ã‚µãƒ³ãƒ—ル
図G-3: 3番目ã®ã‚µãƒ³ãƒ—ル