A å›ã¯é«˜æ ¡ã®ä¼‘ã¿ã‚’利用ã—ã¦ã€é«˜é€Ÿãƒã‚¹(以下ã€ã€Œãƒã‚¹ã€ )ã§ä¸€äººæ—…ã‚’ã™ã‚‹è¨ˆç”»ã‚’ç«‹ã¦ã¦ã„ã¾ã™ã€‚ã¾ãšã€A å›ã¯ä¸€ç•ªè¡Œã£ã¦ã¿ãŸã„町をé¸ã‚“ã§ãã“を目的地ã«ã—ã¾ã—ãŸã€‚次ã«å‡ºç™ºåœ°ã‹ã‚‰ç›®çš„地ã¾ã§ãƒã‚¹ã‚’乗り継ã„ã§ã„ãルートを決ã‚ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。乗り継ãŽã‚’ã™ã‚‹ã¨ãã¯ã€ãƒã‚¹ã‚’é™ã‚Šã¦ã‹ã‚‰åˆ¥ã®ãƒã‚¹ã«ä¹—ã‚Šæ›ãˆã‚‹ã®ã§ã€ãã‚Œãžã‚Œã®ãƒã‚¹ã®ä¹—車券ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚
A å›ã¯è¦ªæˆšã®ãŠã˜ã•ã‚“ã‹ã‚‰ãƒã‚¹ã®å‰²å¼•åˆ¸ã‚’何枚ã‹ã‚‚らã„ã¾ã—ãŸã€‚ ã“ã®åˆ¸ã‚’ 1 枚使ã†ã¨ä¹—車券 1 æžšã‚’åŠé¡ã§è³¼å…¥ã§ãã¾ã™ã€‚例ãˆã°ã€å›³ 1 ã®å‡ºç™ºåœ°5ã‹ã‚‰ç›®çš„地1ã¸è¡Œãå ´åˆã«ã¯ã€5→4→6→2→1ã¨5→3→1ã®äºŒã¤ã®çµŒè·¯ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ã€‚割引券㌠2 æžšã‚ã‚‹ã¨ã™ã‚‹ã¨ã€äº¤é€šè²»ã‚’最も安ãã™ã‚‹ã«ã¯5→4→6→2→1ã®çµŒè·¯ã‚’ãŸã©ã£ãŸå ´åˆã€4→6ã¨6→2ã®è·¯ç·šã«å‰²å¼•ã‚’利用ã—ã€åˆè¨ˆæ–™é‡‘㯠4600円ã¨ãªã‚Šã¾ã™ã€‚一方ã€5→3→1ã®çµŒè·¯ã‚’ãŸã©ã£ãŸå ´åˆã€5→3ã¨3→1ã®è·¯ç·šã«å‰²å¼•ã‚’利用ã—ã€åˆè¨ˆæ–™é‡‘㯠3750 円ã¨ãªã‚Šã¾ã™ã€‚
A å›ã¯è¦³å…‰ã«ãŠé‡‘を回ã—ãŸã„ã®ã§ã€äº¤é€šè²»ã¯ã§ãã‚‹ã ã‘å°‘ãªãã—よã†ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚ãã“㧠A å›ã¯ã€å‡ºç™ºåœ°ã‹ã‚‰ç›®çš„地ã¾ã§ã®æœ€ã‚‚安ã„交通費を求ã‚るプãƒã‚°ãƒ©ãƒ を作æˆã™ã‚‹ã“ã¨ã«ã—ã¾ã—ãŸã€‚
図1
割引券ã®æžšæ•°ã€ãƒã‚¹ãŒã¤ãªã町ã®æ•°ã€ãƒã‚¹ã®è·¯ç·šæ•°ã€å„ãƒã‚¹ã®è·¯ç·šæƒ…å ±ã‚’å…¥åŠ›ã¨ã—ã€å‡ºç™ºåœ°ã‹ã‚‰ç›®çš„地ã¾ã§ã®æœ€ã‚‚安ã„交通費を出力ã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ を作æˆã—ã¦ãã ã•ã„。å„ãƒã‚¹ã¯åŒæ–¹å‘ã«åŒä¸€æ–™é‡‘ã§é‹è¡Œã—ã¦ã„ã¾ã™ã€‚ã¾ãŸã€ç”ºã®æ•°ã‚’ n ã¨ã™ã‚‹ã¨ã€ç”ºã«ã¯ãã‚Œãžã‚Œç•°ãªã‚‹ 1 ã‹ã‚‰ n ã¾ã§ã®ç•ªå·ãŒæŒ¯ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚出発地ã‹ã‚‰ç›®çš„地ã¾ã§ã®çµŒè·¯ã¯å¿…ãšå˜åœ¨ã™ã‚‹ã‚‚ã®ã¨ã—ã¾ã™ã€‚
複数ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã®ä¸¦ã³ãŒå…¥åŠ›ã¨ã—ã¦ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚ 入力ã®çµ‚ã‚ã‚Šã¯ã‚¼ãƒãŒï¼•ã¤ã®è¡Œã§ç¤ºã•ã‚Œã¾ã™ã€‚ å„データセットã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
c n m s d a1 b1 f1 a2 b2 f2 : am bm fm
1 行目ã«å‰²å¼•åˆ¸ã®æžšæ•° c (1 ≤ c ≤ 10)ã€ãƒã‚¹ãŒã¤ãªã町ã®æ•° n (2 ≤ n ≤ 100)ã€ãƒã‚¹ã®è·¯ç·šæ•° m (1 ≤ m ≤ 500)ã€å‡ºç™ºåœ°ã®ç”ºç•ªå· s ã¨ç›®çš„地ã®ç”ºç•ªå· d (s ≠ d) ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
続ã m è¡Œã«ç¬¬ i ã®ãƒã‚¹ã®è·¯ç·šæƒ…å ± ai, bi, fi (1 ≤ ai, bi ≤ n, 1000 ≤ fi ≤ 10000) ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚ai, bi ã¯ãƒã‚¹ã®è·¯ç·šã®å§‹ç‚¹ã¨çµ‚点ã®ç”ºç•ªå·ã€fi ã¯ã“ã®è·¯ç·šã®æ–™é‡‘を表ã™100 刻ã¿ã®æ•´æ•°ã§ã™ã€‚
データセットã®æ•°ã¯ 100 を超ãˆã¾ã›ã‚“。
入力データセットã”ã¨ã«ã€æœ€ã‚‚安ã„交通費を1行ã«å‡ºåŠ›ã—ã¾ã™ã€‚
1 3 3 1 3 1 3 2000 1 2 1000 2 3 1000 2 3 3 1 3 1 3 2300 1 2 1000 2 3 1200 2 6 6 5 1 1 2 1500 1 3 4500 2 6 2000 5 4 1000 6 4 2200 3 5 3000 0 0 0 0 0
1000 1100 3750