function bellmanFord(n, edges) {
const distance = new Array(n).fill(Infinity);
distance[0] = 0;
let isFinished;
for (let i = 0; i < n - 1; i++) {
isFinished = true;
for (const edge of edges) {
const [u, v, w] = edge;
if (distance[u] + w < distance[v]) {
distance[v] = distance[u] + w;
isFinished = false;
}
}
if (isFinished) {
return distance;
}
}
for (let i = 0; i < n - 1; i++) {
for (const edge of edges) {
const [u, v, w] = edge;
if (distance[u] + w < distance[v]) {
distance[v] = distance[u] + w;
return "Negative cycle detected";
}
}
}
return distance;
}