1function dijkstra(n, edges, src) {
2 const dist = new Array(n).fill(Infinity);
3 dist[src] = 0;
4 const visited = new Array(n).fill(false);
5 for (let iter = 0; iter < n; iter++) {
6 let u = -1;
7 for (let i = 0; i < n; i++)
8 if (!visited[i] && (u === -1 || dist[i] < dist[u])) u = i;
9 visited[u] = true;
10 for (const {to: v, w} of adj[u])
11 if (dist[u] + w < dist[v]) dist[v] = dist[u] + w;
12 }
13 return dist;
14}