Dikjstra Naive Implementation
#include using namespace std; vector adj_list[105]; int dis[105]; void dijkstra(int src) { queue q; q.push({src,0}); dis[src] = 0; while(!q.empty()) { pair par = q.front(); q.pop(); int par_node = par.first; int par_dis = par.second; for(auto child : adj_list[par_node]) { int child_node = child.first; int child_dis = child.second; if(par_dis + child_dis < dis[child_node]) { dis[child_node] = par_dis + child_dis; q.push({child_node, dis[child_node]}); } } } } int main() { int n,e; cin >> n >> e; while(e--) { int a,b,c; cin >> a >> b >> c; adj_list[a].push_back({b,c}); adj_list[b].push_back({a,c}); } for(int i=0;i

#include
using namespace std;
vector> adj_list[105];
int dis[105];
void dijkstra(int src)
{
queue> q;
q.push({src,0});
dis[src] = 0;
while(!q.empty())
{
pair par = q.front();
q.pop();
int par_node = par.first;
int par_dis = par.second;
for(auto child : adj_list[par_node])
{
int child_node = child.first;
int child_dis = child.second;
if(par_dis + child_dis < dis[child_node])
{
dis[child_node] = par_dis + child_dis;
q.push({child_node, dis[child_node]});
}
}
}
}
int main()
{
int n,e;
cin >> n >> e;
while(e--)
{
int a,b,c;
cin >> a >> b >> c;
adj_list[a].push_back({b,c});
adj_list[b].push_back({a,c});
}
for(int i=0;i " << dis[i] << endl;
return 0;
}