ในข้อนี้ โจทย์สรุปเป็น variant หนึ่งของโจทย์ shortest path โดยจะต้องหาว่า ภายใต้งบ นั้น การเดินทางจาก ไป โดยเดินจาก ไปยัง แล้วให้จาก มารับจาก ไป จะได้ระยะทางสั้นสุดจาก ไปยัง เป็นเท่าใด หากเท่ากันหลายค่า ให้ตอบค่าที่ น้อยสุด
ในข้อนี้ เราจะใช้ Dijkstra's Algorithm ในการหา Shortest Path อย่างรวดเร็ว
สังเกตได้ว่าถ้าเราสามารถเดินทางโดยตรงจาก ไปยัง ในงบ เลยก็ง่าย คือเราจะทำเพียงหา Shortest Path จาก ไปยัง ก็จะเสร็จสิ้น แต่หากไม่สามารถทำได้เราจำเป็นจะต้องหา ที่ และ ภายใต้ เหล่านี้ จะต้องหา
วิธีเบื้องต้นคือไล่หาทุกๆ ที่เป็นไปได้ แล้วหาระยะทางจาก มายัง ซึ่งจะทำงานในเวลา ซึ่งไม่ทัน
วิธีที่ดีสำหรับข้อนี้ คือการเริ่มหา Single Source Shortest Path (SSSP) จาก ไปยังทุกจุดที่เป็นไปได้ เท่านี้เราจะทราบว่ามีจุดใดบ้างที่สามารถไปถึงได้ โดยการกรองเฉพาะจุดที่ระยะห่างจาก มีไม่เกิน จุดเหล่านั้นคือค่าของ ที่เป็นไปได้ เพื่อความสะดวก จะเรียกเซตของจุดเหล่านั้นว่า ต่อมาทำ Single Source Shortest Path อีกครั้ง จาก ไปยังแต่ละจุดในกราฟ แล้วพิจารณาเฉพาะ distance ของจุดในเซต แล้วค่อยๆหาจุดที่มี distance ต่ำสุด หากเท่ากันให้นับจุดที่มีหมายเลขต่ำกว่า เป็น ที่ต้องการ เท่านี้จะได้ตามที่โจทย์ต้องการ
Time Complexity: