19XXå¹´ã€nã¤ã®å›½ã§é€£åˆå›½è»ãŒçµæˆã•ã‚ŒãŸã€‚連åˆå›½è»ã«å±žã™ã‚‹å„国ã§ã¯ã€æ•µè»ã®ä¾µç•¥ã‹ã‚‰è‡ªå›½ã‚’守るãŸã‚ã«å›½å†…ã«ï¼‘ã¤ä»¥ä¸Šã®æ‹ 点を作りã€å‘¨å›²ã‚’è¦æˆ’ã—ã¦ã„る。図1ã¯é€£åˆå›½ã®ä¾‹ã‚’示ã—ã€é•·æ–¹å½¢ãŒå„国をã€ãã®ä¸ã«ã‚る円ãŒãã®å›½ã®æ‹ 点を表ã™ã€‚
敵è»ãŒä¾µç•¥ã—ã¦ããŸå ´åˆã€ãれを一番最åˆã«ç™ºè¦‹ã—ãŸæ‹ 点ã‹ã‚‰ãã®æƒ…å ±ã‚’é€£åˆå›½è»ã«å±žã™ã‚‹ä»–国ã¾ãŸã¯è‡ªå›½ã®æ‹ 点ã«ç™ºä¿¡ã™ã‚‹ã“ã¨ã«ãªã£ã¦ã„る。 æƒ…å ±ã‚’ä»–ã®æ‹ 点ã«ä¼ãˆã‚‹ã«ã¯æ£ã®æ•´æ•°ã®ã‚³ã‚¹ãƒˆãŒã‹ã‹ã‚‹ã€‚
ã¾ãŸã€å„国ã§ã¯è‡ªå›½ã®æ‹ 点ã®ã†ã¡ã€é€£åˆå›½è»ç¿»è¨³é€šä¿¡éƒ¨(ATIS : Allied Translator and Interpreter Section)ã«å±žã™ã‚‹å…µå£«ãŒé…属ã•ã‚Œã¦ã„ã‚‹æ‹ ç‚¹ã‚’ã¡ã‚‡ã†ã©ï¼‘ã¤ã ã‘æŒã£ã¦ã„る。 ã“ã®å…µå£«ã ã‘ãŒé€£åˆå›½è»ã«å±žã™ã‚‹å…¨ã¦ã®å›½ã®è¨€èªžã‚’話ã™ã“ã¨ãŒã§ãã€ãã®ä»–ã®å…µå£«ã¯è‡ªåˆ†ã®å›½ã®è¨€èªžã—ã‹è©±ã›ãªã„。 ãã®ç‚ºã€æƒ…å ±ã‚’å—ã‘å–ã£ãŸæ‹ 点ãŒä»–国ã«æƒ…å ±ã‚’ä¼ãˆã‚ˆã†ã¨ã—ãŸéš›ã«ãã®æ‹ 点ãŒATISã«å±žã™ã‚‹å…µå£«ã‚’ã‚‚ãŸãªã„å ´åˆã€ãã“ã‹ã‚‰è‡ªå›½ã®ATISã«å±žã™ã‚‹å…µå£«ã‚’ã‚‚ã¤æ‹ 点ã«æƒ…å ±ã‚’ä¼ãˆä»–国ã«æƒ…å ±ã‚’ç™ºä¿¡ã—ã¦ã‚‚らã†å¿…è¦ãŒã‚る。
国毎ã§å„æ‹ ç‚¹ã«ï¼ã‹ã‚‰é †ã«[ãã®å›½ãŒã‚‚ã¤æ‹ 点ã®æ•°-1]ã¾ã§ã®ç•ªå·ãŒå‰²ã‚ŠæŒ¯ã‚‰ã‚Œã¦ãŠã‚Šã€ï¼ç•ªç›®ã®æ‹ 点ã«ATISã«å±žã™ã‚‹å…µå£«ãŒã„る。 ã¤ã¾ã‚Šã€ä»–国ã®æ‹ 点ã«æƒ…å ±ã‚’ä¼é”ã§ãã‚‹ã®ã¯ï¼ç•ªç›®ã®æ‹ 点ã ã‘ã§ã‚ã‚Šã€ãã®ä»–ã®æ‹ 点ã‹ã‚‰ä»–国ã¸ã¯é€šä¿¡ã§ããªã„。 ã¾ãŸã€ãã®å›½ã®ï¼ç•ªç›®ã®æ‹ 点ã«æƒ…å ±ãŒä¼ã‚ã‚Œã°ãã®å›½å…¨ä½“ã«æƒ…å ±ãŒä¼ã‚ã£ãŸã‚‚ã®ã¨ã™ã‚‹ã€‚
様々ãªç†ç”±ã‹ã‚‰ã€å…¨ã¦ã®æ‹ 点ã®é–“ã§é€šä¿¡ãŒã§ãã‚‹ã¨ã¯é™ã‚‰ãªã„。 ã‚ã‚‹æ‹ ç‚¹ã‹ã‚‰åˆ¥ã®æ‹ 点ã«æƒ…å ±ã‚’ä¼ãˆã‚‹äº‹ãŒã§ããŸã¨ã—ã¦ã‚‚ã€ãã®é€†ãŒæˆã‚Šç«‹ã¤ã¨ã¯é™ã‚‰ãªã„。 ã¾ãŸã€ã‚ã‚‹æ‹ ç‚¹ã‹ã‚‰åˆ¥ã®æ‹ 点ã«æƒ…å ±ã‚’ä¼ãˆãŸéš›ã®ã‚³ã‚¹ãƒˆã¨ãã®é€†ã§ã‹ã‹ã‚‹ã‚³ã‚¹ãƒˆãŒåŒã˜ã¨ã‚‚é™ã‚‰ãªã„。
ã“れらã®ã“ã¨ã‚’è¸ã¾ãˆã¦ã€ã‚ã‚‹æ‹ ç‚¹ãŒæ•µè»ã‚’発見ã—ãŸéš›ã«ã€é€£åˆå›½è»å…¨ä½“ã«æƒ…å ±ãŒè¡Œã渡るコストã®ç·å’ŒãŒæœ€ã‚‚å°‘ãªã„ä¼é”方法を知りãŸã„。 連åˆå›½è»ã«å±žã™ã‚‹å…¨ã¦ã®å›½ã®ï¼ç•ªç›®ã®æ‹ 点ã«å¯¾ã—ã¦æœ€åˆã«æ•µè»ã‚’見ã¤ã‘ãŸæ‹ 点ã‹ã‚‰æƒ…å ±ãŒä¼é”ã•ã‚ŒãŸæ™‚ã€é€£åˆå›½è»å…¨ä½“ã«æƒ…å ±ãŒè¡Œã渡ã£ãŸã‚‚ã®ã¨ã™ã‚‹ã€‚
敵è»ã‚’発見ã—ãŸæ‹ 点ãŒè³ªå•ã¨ã—ã¦ä¸Žãˆã‚‰ã‚Œã‚‹ã®ã§ã€æœ€ã‚‚å°‘ãªã„コストã§ãã®æƒ…å ±ãŒé€£åˆå›½è»å…¨ä½“ã«è¡Œã渡るä¼é”方法ã¨ãã®ã‚³ã‚¹ãƒˆã‚’出力ã›ã‚ˆã€‚
例ãˆã°ã€ä»¥ä¸‹ã®ã‚±ãƒ¼ã‚¹ã«ã¤ã„ã¦è€ƒãˆã‚‹ ( Sample Input 4ã€ï¼‘ã¤ã‚ã®è³ªå• )
国neepalã®1番目ã®æ‹ 点ãŒæ•µè»ã‚’発見ã—ãŸã¨ã™ã‚‹ã€‚ ã“ã®å ´åˆã€ï¼‘番目ã®æ‹ 点ã‹ã‚‰ä»–国ã¸ã¯é€šä¿¡ã§ããªã„ãŸã‚ã€ã¾ãšè‡ªå›½ã®ï¼ç•ªç›®ã®æ‹ 点ã¸æƒ…å ±ã‚’ä¼ãˆã‚‹ã€‚
次ã«ã€ï¼ç•ªç›®ã®æ‹ 点ã‹ã‚‰å›½luxenbourg,nowayã«æƒ…å ±ã‚’ä¼ãˆã‚‹ã€‚ neepalã‹ã‚‰luxenbourgã®ï¼ç•ªç›®ã®æ‹ 点ã¸ç›´æŽ¥é€šä¿¡ã™ã‚‹ã“ã¨ã¯ã§ãã‚‹ãŒã€ï¼“番目ã®æ‹ 点ã«æƒ…å ±ã‚’ä¼ãˆã€ãã“ã‹ã‚‰ï¼ç•ªç›®ã®æ‹ 点ã¸ä¼ãˆãŸã»ã†ãŒã‚³ã‚¹ãƒˆãŒå°‘ãªã済む。 ã“ã®å ´åˆã€å…¨ã¦ã®å›½ã®ï¼ç•ªç›®ã®å›½ã¸æƒ…å ±ã‚’ä¼ãˆã‚‹ãŸã‚ã«ã‹ã‹ã‚‹æœ€å°ã®ã‚³ã‚¹ãƒˆã¯ï¼‘ï¼’ã¨ãªã‚‹ã€‚ コストãŒï¼‘ï¼’ã§æ¸ˆã‚€ä¼é”方法ã¯è¤‡æ•°å˜åœ¨ã™ã‚‹ãŒã€ãã®ã†ã¡ã®ã©ã‚Œã‹ä¸€ã¤ã‚’ç”ãˆã¨ã—ã¦å‡ºåŠ›ã™ã‚Œã°è‰¯ã„。
以下ã®å›³ï¼’ã®èµ¤ã„矢å°ã¯ãã®ç”ãˆã®ã†ã¡ã®ï¼‘ã¤ã§ã‚る。
n countryname0 m0 countryname1 m1 … countrynamen-1 mn-1 e c10 v10 c20 v20 cost0 c11 v11 c21 v21 cost1 … c1e-1 v1e-1 c2e-1 v2e-1 coste-1 q c30 v30 c31 v31 … c3q-1 v3q-1
å„質å•ã«å¯¾ã—ã¦ä»¥ä¸‹ã®å½¢å¼ã§ç”ãˆã‚’出力ã™ã‚‹ã€‚
å„質å•ã«å¯¾ã™ã‚‹ç”ãˆã®æœ€å¾Œã®è¡Œã«ã¯ã€ï¼•ã¤ã® '-’ ã‹ã‚‰ãªã‚‹"-----†( “ ã¯é™¤ã ) ã¨ã„ã†1行を出力ã™ã‚‹ã“ã¨ã€‚
ç”ãˆãŒå˜åœ¨ã™ã‚‹å ´åˆ
1行目ã«è³ªå•ã§ä¸Žãˆã‚‰ã‚ŒãŸå›½ã®æ‹ 点ã‹ã‚‰é€£åˆå›½è»å…¨ä½“ã«æƒ…å ±ãŒè¡Œã渡るãŸã‚ã«å¿…è¦ãªã‚³ã‚¹ãƒˆã®æœ€å°å€¤ã‚’出力ã™ã‚‹ã€‚
2行目以é™ã«ã¯ãã®æ™‚ã®ä¼é”方法を出力ã™ã‚‹ã€‚ ä¼é”方法ã¯ä»¥ä¸‹ã®å½¢å¼ã§è¡¨ç¾ã•ã‚Œã‚‹ã€‚
c40 v40 c50 v50 c41 v41 c51 v51 ...
国c4iã®æ‹ 点v4iã‹ã‚‰å›½c5iã®æ‹ 点v5iã«æƒ…å ±ã‚’ä¼ãˆãŸã“ã¨ã‚’表ã™ã€‚
以下ã®äº‹ã«æ°—ã‚’ã¤ã‘る事。
ç”ãˆãŒå˜åœ¨ã—ãªã„å ´åˆ
1行㫠â€Impossible†( “ ã¯é™¤ã ) ã¨å‡ºåŠ›ã™ã‚‹ã“ã¨ã€‚
3 frence 1 usi 1 powland 1 2 usi 0 frence 0 10 frence 0 powland 0 10 2 usi 0 powland 0
20 usi 0 frence 0 frence 0 powland 0 ----- Impossible -----
2 usso 2 caneda 2 4 usso 1 usso 0 1 usso 0 caneda 0 10 usso 0 caneda 1 2 caneda 1 caneda 0 2 1 usso 1
5 usso 1 usso 0 usso 0 caneda 1 caneda 1 caneda 0 -----
3 chinax 1 ok 1 austraria 2 6 chinax 0 austraria 0 5 austraria 0 chinax 0 5 austraria 1 austraria 0 1 ok 0 austraria 0 5 austraria 0 ok 0 5 ok 0 austraria 1 1 2 chinax 0 ok 0
10 chinax 0 austraria 0 austraria 0 ok 0 ----- 7 ok 0 austraria 1 austraria 1 austraria 0 austraria 0 chinax 0 -----
3 neepal 2 luxenbourg 4 noway 2 12 neepal 1 neepal 0 2 neepal 0 noway 1 2 neepal 0 luxenbourg 0 10 neepal 0 luxenbourg 3 2 luxenbourg 3 luxenbourg 1 2 luxenbourg 3 luxenbourg 2 2 luxenbourg 1 luxenbourg 0 2 luxenbourg 2 luxenbourg 0 2 noway 1 noway 0 2 noway 0 neepal 0 2 noway 0 luxenbourg 3 2 noway 0 luxenbourg 0 10 3 neepal 1 luxenbourg 3 noway 1
12 neepal 1 neepal 0 neepal 0 luxenbourg 3 luxenbourg 3 luxenbourg 2 luxenbourg 2 luxenbourg 0 neepal 0 noway 1 noway 1 noway 0 ----- Impossible ----- 10 noway 1 noway 0 neepal 0 luxenbourg 3 luxenbourg 3 luxenbourg 2 luxenbourg 2 luxenbourg 0 noway 0 neepal 0 -----