1function bellmanFord(n, edges, src) {
2 const dist = new Array(n).fill(Infinity);
3 dist[src] = 0;
4 for (let round = 1; round <= n - 1; round++) {
5 let anyRelaxed = false;
6 for (const {u, v, w} of edges) {
7 if (dist[u] + w < dist[v]) {
8 dist[v] = dist[u] + w;
9 anyRelaxed = true;
10 }
11 }
12 if (!anyRelaxed) break;
13 }
14 return dist;
15}