Single source shortest path problem