2011 å¹´ã®ã‚ã®é ƒï¼Œã¾ã プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚³ãƒ³ãƒ†ã‚¹ãƒˆã¯ã¨ã¦ã‚‚平和ã§ã‚り, 我々ã¯ãƒ«ãƒ¼ãƒ«ã‚’ç²¾èªã›ãšã«æ°—軽ã«ã‚³ãƒ³ãƒ†ã‚¹ãƒˆã«å‚åŠ ã—ã¦ã„ãŸï¼Ž ã—ã‹ã—,ãã“ã« Gâ—‹â—‹gle ã®é™°è¬€ã¯è¿«ã£ã¦ã„ãŸï¼Ž ã‚る日,Gâ—‹â—‹gle ã«ã‚ˆã£ã¦ç§˜å¯†è£ã«è²·åŽã•ã‚Œã¦ã„㟠Tâ—‹pCâ—‹der ã®ã‚³ãƒ³ãƒ†ã‚¹ãƒˆã¯ï¼Œ 人知れãšã†ã¡ã«ãƒ«ãƒ¼ãƒ«ãŒæ”¹å¤‰ã•ã‚Œã¦ãŠã‚Šï¼Œå‘½ãŒã‘ã®ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚³ãƒ³ãƒ†ã‚¹ãƒˆã¨ãªã£ã¦ã„ãŸï¼Ž ãã—ã¦åƒ•ã¯ï¼Œãã“ã§ï¼Œä½•ã‚‚知らãšï¼Œ ã¾ã£å…ˆã« kita_masa ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒãƒ¼ã‚’çªã„ãŸã®ã ….
…ãã†ã„ãˆã°ï¼Œä»Šã“ã„ã¤ã¯ï¼Œéƒ¨å±‹ã«å±…ã‚‹å…¨ã¦ã®äººé–“を一瞬ã«ã—ã¦å€’ã—ã¦ã„ãŸï¼Ž ã©ã†ãªã£ã¦ã„ã‚‹ã‚“ã ?
…ãªã‚‹ã»ã©!! ãã†ã„ã†ã“ã¨ã‹ï¼Ž å½¼ã¯å¤§å¦æ™‚代,指数時間ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ を高速ã«ã™ã‚‹ã“ã¨ã«èˆˆå‘³ã‚’æŒã£ã¦ã„ãŸï¼Ž 例ãˆæŒ‡æ•°æ™‚é–“ã§ã‚ã£ã¦ã‚‚,指数ã®åº•ãŒæ¥µã‚ã¦å°ã•ã‘ã‚Œã°ï¼Œ ç¾å®Ÿçš„ãªã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã«å¯¾ã—ã¦å分ã«é«˜é€Ÿãªå¯èƒ½æ€§ãŒã‚る.
凄ã¾ã˜ã„,想åƒä»¥ä¸Šã ….
グラフãŒä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž グラフã¯N 個ã®é ‚点をæŒã¡ï¼Œé ‚点ã«ã¯ 1 ã‹ã‚‰ N ã®ç•ªå·ãŒä»˜ã„ã¦ã„る. ã¾ãŸï¼Œã‚°ãƒ©ãƒ•ã¯ M 個ã®è¾ºã‚’æŒã¡ï¼Œè¾ºã¯æœ‰å‘ (一方通行) ã§ï¼Œ ãã‚Œãžã‚Œè·é›¢ãŒæ±ºã¾ã£ã¦ã„る.
é ‚ç‚¹ 1 ã‹ã‚‰å‡ºç™ºã—ï¼Œé ‚ç‚¹ 2, 3, …, N ã‚’ã“ã®é †ç•ªã«è¨ªã‚Œï¼Œé ‚点 1 ã¸æˆ»ã‚‹çµŒè·¯ã‚’考ãˆã‚‹ï¼Ž ã“ã“ã§ï¼Œã€Œã“ã®é †ç•ªã«è¨ªã‚Œã‚‹ã€ã¨ã„ã†ã®ã¯ï¼ŒçµŒè·¯ã«å«ã¾ã‚Œã‚‹é ‚点ã®éƒ¨åˆ†åˆ—ã« 2, 3, …, N ãŒå«ã¾ã‚Œã‚‹ã¨ã„ã†ã“ã¨ã§ã‚る. ã¤ã¾ã‚Šï¼Œã‚¹ã‚¿ãƒ¼ãƒˆåœ°ç‚¹ã®é ‚点 1 ã‹ã‚‰é ‚点 2 ã¸ã®ç§»å‹•ã¯ï¼Œ 直接ã®ç§»å‹•ã§ã‚ã£ã¦ã‚‚,他ã®é ‚点を経由ã—ãŸç§»å‹•ã§ã‚ã£ã¦ã‚‚よã, 次ã®é ‚点 2 ã‹ã‚‰é ‚点 3ã¸ã®ç§»å‹•ï¼Œ ã•ã‚‰ã«ãã®æ¬¡ã®é ‚点 3 ã‹ã‚‰é ‚点 4ã¸ã®ç§»å‹•ç‰ã«é–¢ã—ã¦ã‚‚åŒæ§˜ã§ã‚る. åŒã˜é ‚点やåŒã˜è¾ºã‚’ 2 度通ã£ã¦ã‚‚構ã‚ãªã„.
グラフãŒä¸Žãˆã‚‰ã‚ŒãŸæ™‚, é ‚ç‚¹ 1 ã‹ã‚‰å‡ºç™ºã—é ‚ç‚¹ 2, 3, …, N ã‚’ã“ã®é †ç•ªã«è¨ªã‚Œé ‚点 1 ã¸æˆ»ã‚‹çµŒè·¯ã®ã†ã¡ï¼Œ 最çŸã®ã‚‚ã®ã®é•·ã•ã‚’出力ã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ を作æˆã›ã‚ˆï¼Ž 経路ã®é•·ã•ã¨ã¯ï¼ŒçµŒè·¯ã«å«ã¾ã‚Œã‚‹è¾ºã®è·é›¢ã®å’Œã§ã‚る. 複数回å«ã¾ã‚Œã‚‹è¾ºã«é–¢ã—ã¦ã¯ï¼Œå«ã¾ã‚Œã‚‹å›žæ•°ã®åˆ†ã ã‘è·é›¢ã‚’åŠ ãˆã‚ˆï¼Ž
入力ã®æœ€åˆã®è¡Œã¯ 2 ã¤ã®æ•´æ•° N, M ã‚’å«ã‚€ï¼Ž ã“ã‚Œã¯ï¼Œã‚°ãƒ©ãƒ•ã®é ‚点数ã¨è¾ºæ•°ã‚’表ã™ï¼Ž
続ã M è¡Œã¯ï¼Œè¾ºã®æƒ…å ±ã‚’è¡¨ã™ï¼Ž ã“れらã®è¡Œã®ã†ã¡ã® i 行目㯠3 ã¤ã®æ•´æ•° ai, bi, ci ãŒæ›¸ã‹ã‚Œã¦ãŠã‚Šï¼Œ 辺 i ã¯é ‚点 ai ã‹ã‚‰é ‚点 bi ã‚’çµã³ï¼Œãã®è·é›¢ã¯ ci ã§ã‚ã‚‹ã“ã¨ã‚’表ã™ï¼Ž
æ¡ä»¶ã‚’満ãŸã™çµŒè·¯ã®ã†ã¡æœ€çŸã®ã‚‚ã®ã®é•·ã•ã‚’出力ã›ã‚ˆï¼Ž ãŸã ã—,æ¡ä»¶ã‚’満ãŸã™çµŒè·¯ãŒå˜åœ¨ã—ãªã„å ´åˆã¯ï¼Œ-1 を出力ã›ã‚ˆï¼Ž
入力例 1:
5 5 1 2 10 2 3 20 3 4 30 4 5 40 5 1 50
入力例 1 ã«å¯¾ã™ã‚‹å‡ºåŠ›ã®ä¾‹:
150
入力例 2:
5 5 1 5 10 5 4 20 4 3 30 3 2 40 2 1 50
入力例 2 ã«å¯¾ã™ã‚‹å‡ºåŠ›ã®ä¾‹:
600