dij with priority queue