optmisied dijkstra algo