https://en.etudes.ru/sketches/shortest-path/