Today i was solving cses graph problems Shortest Routes I LINK and i am using Dijkstra’s algorithms and after submitting i am getting wrong answer , please help me to find out the error.
My Code
Code
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define INF 0x3f3f3f3f
#define fastIO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define all(x) x.begin(), x.end()
ll n, k, m, V, E;
vector<pair<ll,ll>> adj[1000005];
int main(){
cin >> V >> E;
for(ll i = 0; i<E; i++){
ll a, b, c;
cin >> a >> b >> c;
--a;
--b;
adj[a].push_back({b , c});
}
priority_queue<pair<ll, ll>, vector<pair<ll, ll>> , greater<pair<ll, ll>> > pq;
vector<ll> dist(V, INF);
pq.push({0, 0}); // distance, source.
dist[0] = 0;
while(!pq.empty()){
ll u = pq.top().second;
pq.pop();
for(auto p : adj[u]){
ll v = p.first;
ll w = p.second;
if(dist[v] > w + dist[u]){
dist[v] = w + dist[u];
pq.push({dist[v], v});
}
}
}
for(ll i = 0; i<V; i++){
cout << dist[i] << " ";
}
return 0;
}
Thankyou in advance