コードアートオンライン(CAO)ã¯ï¼Œæ§˜ã€…ãªå•é¡Œã‚’プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã«ã‚ˆã£ã¦è§£ãã“ã¨ã«ã‚ˆã‚Šï¼Œå†’険を進ã‚ã¦è¡ŒãオンラインRPGã§ã‚る. CAOã¯ï¼Œä¸–ç•Œåˆã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒªã‚¢ãƒªãƒ†ã‚£ç©ºé–“を実ç¾ã—ãŸã‚²ãƒ¼ãƒ ã§ã‚ã£ãŸã“ã¨ã‚‚ã‚り,大人気ã®å†…ã«å®Œå£²ã—,ゲームを購入ã—ãŸãƒ¦ãƒ¼ã‚¶é”ã¯ã“ã®ä¸–界を楽ã—ã‚€ã¯ãšã§ã‚ã£ãŸï¼Ž ã—ã‹ã—,ゲームã«ãƒ€ã‚¤ãƒ–ã—ãŸãƒ—レイヤーé”ã¯ï¼Œã‚²ãƒ¼ãƒ マスターã‹ã‚‰æã‚‹ã¹ã託宣をèžã‹ã•ã‚Œã‚‹ï¼Ž
「å›ãŸã¡ãƒ—レイヤーã®å†…ã®èª°ã‹ãŒï¼Œãƒ©ã‚¹ãƒˆãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ã®ãƒ©ã‚¹ãƒˆãƒ—ãƒãƒ–レムを解ã‹ãªã„é™ã‚Šï¼Œã“ã®ä»®æƒ³ç©ºé–“ã‹ã‚‰æŠœã‘出ã™ã“ã¨ã¯ã§ããªã„.ãã—ã¦ï¼Œã“ã®ä¸–ç•Œã§ã®ï¼ŒWAã‚„TLE・REã¯ï¼Œç¾å®Ÿä¸–ç•Œã§ã®æ»ã‚’æ„味ã™ã‚‹ï¼Žå¿ƒã—ã¦å•é¡Œã«ã¨ã‚Šã‹ã‹ã£ã¦ã»ã—ã„.ã€
ã‚ãªãŸã‚‚,CAOã®ãƒ—レイヤーã®å†…ã®1人ã§ï¼Œã“ã®ã‚²ãƒ¼ãƒ をクリアã—ã¦ç¾å®Ÿä¸–ç•Œã«æˆ»ã‚‹ãŸã‚ã«ï¼Œã‚²ãƒ¼ãƒ 攻略ã«å…¨åŠ›ã‚’å°½ãã—ã¦ã„る. ã‚る日,ã‚ãªãŸã¯æ¬¡ã®ã‚ˆã†ãªå•é¡Œã«ç›´é¢ã™ã‚‹ã“ã¨ã¨ãªã£ãŸï¼Ž
今回,新ãŸãªãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ã‚’攻略ã™ã‚‹ãŸã‚ã«ï¼Œn人ã®ãƒ¡ãƒ³ãƒãƒ¼ã§ãƒ‘ーティãŒçµ„ã¾ã‚ŒãŸï¼Ž ã‚ãªãŸã‚‚ã“ã®ãƒ‘ーティã®å†…ã®1人ã§ã‚る. 今ã‹ã‚‰æ”»ç•¥ã™ã‚‹ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ã«çªå…¥ã™ã‚‹ãŸã‚ã«ã¯ï¼Œå´–ã‹ã‚‰è¦‹ãˆã‚‹ç©´ã‚’通éŽã—ãªãã¦ã¯ãªã‚‰ãªã„. 無事ã«ç©´ã‚’通éŽã§ãã‚Œã°ï¼Œãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ã«çªå…¥ã§ãã‚‹ãŒï¼Œç©´ã«çªå…¥ã§ããšä»–ã®éƒ¨åˆ†ã«è§¦ã‚Œã¦ã—ã¾ã†ã¨ï¼Œæ»ãŒå¾…ã£ã¦ã„る. ã•ã‚‰ã«ï¼Œ1ã¤ã®ç©´ã«èª°ã‹ãŒé€šã‚‹ã¨ï¼Œãã®ç©´ã¯é–‰ã˜ã¦ã—ã¾ã†ãŸã‚,1人1人別々ã®ç©´ã«å…¥ã‚‰ãªã‘ã‚Œã°ãªã‚‰ãªã„.
穴や人ã¯ï¼ŒäºŒæ¬¡å…ƒå¹³é¢ä¸Šã§è€ƒãˆã‚‹ã“ã¨ã¨ã™ã‚‹ï¼Ž ç©´ã®å½¢ã¯ï¼Œå›³G-1ã®ã‚ˆã†ãªï¼Œå¤§å°æ§˜ã€…ãªå††ã§ã‚る.入力ã§ã¯ï¼ŒåŠå¾„ã®é•·ã•ãŒä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž
|
|
人ã®å½¢ã¯ï¼Œå›³G-2ã®ã‚ˆã†ã«äººã®æ–é¢ãŒå¤šè§’å½¢ã§ä¸Žãˆã‚‰ã‚Œã‚‹ï¼ˆå‡¸ã¨ã¯é™ã‚‰ãªã„). 入力ã§ã¯ï¼Œå¤šè§’å½¢ã®å½¢ã‚’表ã™ãŸã‚ã«ï¼Œé ‚点ãŒå時計ã¾ã‚ã‚Šã§ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž 多角形ã®ä»»æ„ã®ä¸‰ç‚¹ã¯ï¼Œ1直線上ã«ä¸¦ã°ãªã„ã¨ä»®å®šã—ã¦ã‚ˆã„. ã•ã‚‰ã«ï¼Œé ‚点を構æˆã™ã‚‹ç›®çš„以外ã§ï¼Œå¤šè§’å½¢ã®ç·šåˆ†åŒå£«ãŒäº¤å·®ã™ã‚‹ã“ã¨ã¯ãªã„ã‚‚ã®ã¨ã™ã‚‹ï¼Ž ç©´ã«é€šã™ãŸã‚ã«ï¼Œè‡ªç”±ã«å›žè»¢ã—ã¦ã‚ˆã„(ãŸã ã—,z軸方å‘ã¸ã®å›žè»¢ã¯ç¦æ¢ã™ã‚‹ï¼‰ï¼Ž 人を表ã™å¤šè§’å½¢ã®é ‚点ãŒï¼Œç©´ã®å††å‘¨ä¸Šã«ã‚ã‚‹å ´åˆã§ã‚‚,穴を通éŽã§ãã‚‹ã‚‚ã®ã¨ã™ã‚‹ï¼Ž
|
|
パーティã®ä¸ã§æœ€ã‚‚アルゴリズムスã‚ルãŒé«˜ã„ã‚ãªãŸã¯ï¼Œã¿ã‚“ãªã§ç„¡äº‹ã«ç©´ã‚’通éŽã§ãã‚‹ã‹ã©ã†ã‹ã®åˆ¤å®šå•é¡Œã‚’解ãã“ã¨ã«ã—ãŸï¼Ž ã‚‚ã—,無事ã«é€šéŽã§ãã‚‹ãªã‚‰ï¼Œã©ã®äººãŒã©ã®ç©´ã‚’通éŽã™ã‚Œã°ã„ã„ã®ã‹è¡¨ç¤ºã›ã‚ˆï¼Ž
※今回ã®ã‚³ãƒ³ãƒ†ã‚¹ãƒˆã§æ»ã¬ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“ãŒï¼Œé–“é•ã£ãŸã‚‰æ»ã¬ã¤ã‚‚ã‚Šã§è§£ã„ã¦ãã ã•ã„.
1行目ã«ï¼Œç©´ã®æ•°ã‚’表ã™æ•´æ•°n (1 <= n <= 100)ã¨ï¼Œãƒ‘ーティã®äººæ•°ã‚’表ã™æ•´æ•°m (1 <= m <= n)ãŒã‚¹ãƒšãƒ¼ã‚¹åŒºåˆ‡ã‚Šã§å…¥åŠ›ã•ã‚Œã‚‹ï¼Ž
次ã®è¡Œã«ï¼Œç©´ã®åŠå¾„を表ã™æ•´æ•°ri (1 <= ri <= 1000)ãŒã‚¹ãƒšãƒ¼ã‚¹åŒºåˆ‡ã‚Šã§n個入力ã•ã‚Œã‚‹ï¼Ž ã“れらã®ç©´ã¯ï¼Œå…¥åŠ›ã•ã‚ŒãŸé †ç•ªã«ï¼Œ1番ã®ç©´, 2番ã®ç©´, ..., n番ã®ç©´ã¨æ•°ãˆã‚‹ã“ã¨ã¨ã™ã‚‹ï¼Ž
続ã„ã¦ï¼Œm人ã®äººã®å½¢ã®æƒ…å ±ãŒå…¥åŠ›ã•ã‚Œã‚‹ï¼Ž 1人ã®æƒ…å ±ã¯ï¼Œã¾ãš1行目ã«å¤šè§’å½¢ã®é ‚点数p (3 <= p <= 100)ãŒå…¥åŠ›ã•ã‚Œã‚‹ï¼Ž 続ãpè¡Œã«ã¯ï¼Œå¤šè§’å½¢ã®é ‚点ã®åº§æ¨™ãŒå時計周りã§ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž å„è¡Œã«ã¯ï¼Œ1ã¤ã®é ‚点を表ã™æ•´æ•°xi, yi (-1000 <= xi, yi <= 1000)ãŒã‚¹ãƒšãƒ¼ã‚¹åŒºåˆ‡ã‚Šã§å…¥åŠ›ã•ã‚Œã‚‹ï¼Ž 人ã¯ï¼Œå…¥åŠ›ã•ã‚ŒãŸé †ç•ªã«ï¼Œ1番ã®äºº, 2番ã®äºº, ..., m番ã®äººã¨æ•°ãˆã‚‹ã“ã¨ã¨ã™ã‚‹ï¼Ž
i番(1 <= i <= m)ã®äººãŒï¼Œä½•ç•ªã®ç©´ã«å…¥ã‚Œã°ã„ã„ã‹ã‚’出力ã›ã‚ˆï¼Ž i行目ã«ã¯ï¼Œi番ã®äººãŒé€šã‚‹ã¹ãç©´ã®ç•ªå·ã‚’出力ã™ã‚‹ã“ã¨ï¼Ž
ã‚‚ã—,複数ã®é€šã‚Šæ–¹ãŒã‚ã‚‹å ´åˆï¼Œè¾žæ›¸é †ã§ä¸€ç•ªå°ã•ããªã‚‹é€šã‚Šæ–¹ã‚’出力ã™ã‚‹ã“ã¨ï¼Ž 2ã¤ã®æ•°åˆ—A = {a1, a2, ..., am}ã¨B = {b1, b2, ..., bm}ãŒã‚ã£ãŸã¨ã,AãŒBã‚ˆã‚Šè¾žæ›¸é †ã§å°ã•ã„ã¨ã¯ï¼ŒaiãŒbiã¨ç•°ãªã‚‹ã‚ˆã†ãªæœ€åˆã®iã«ã¤ã„ã¦ï¼ŒaiãŒbiよりå°ã•ã„ã¨ãã®ã“ã¨ã‚’言ã†ï¼Ž
通り方ãŒ1ã¤ã‚‚見ã¤ã‹ã‚‰ãªã„å ´åˆã¯ï¼Œ"NG"ã¨1行出力ã™ã‚‹ã“ã¨ï¼Ž 最後ã«æ”¹è¡Œã‚’出力ã™ã‚‹ã®ã‚’忘れãªã„ã“ã¨ï¼Ž
3 3 25 100 10 8 -10 0 -2 2 0 10 2 2 10 0 2 -2 0 -10 -2 -2 4 30 0 50 0 50 40 30 40 3 30 -10 45 -70 60 -10
3 1 2
4 3 25 15 15 30 5 0 0 10 0 20 10 0 20 -20 10 3 20 0 40 0 30 10 3 -50 0 -30 0 -40 10
1 2 3
2 2 1 30 4 0 0 10 0 10 10 0 10 3 5 5 20 20 5 20
NG