Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Dijkestra (int sourceNode) {
- priority_queue <pair <ll, int>, vector<pair <ll, int> >, greater<pair <ll, int> > > pq;
- for (int i = 1; i < j; i++)
- dist[i] = INF;
- dist[sourceNode] = 0;
- pq.push ({0, sourceNode});
- while (!pq.empty()) {
- pair <ll, int> v = pq.top();
- pq.pop ();
- if (v.F != dist[v.S])
- continue;
- for (auto edge: adj[v.S]) {
- int to = edge.F, len = edge.S;
- if (dist[v.S] + len < dist[to]) {
- dist[to] = dist[v.S] + len;
- //pa[to] = v.S;
- pq.push ({dist[to], to});
- }
- }
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement