https://9dok.net/document/yevkxxr4-shortest-paths-algorithms.html