1function differenceConstraints(n, edges) {
2 // x_v - x_u <= w => edge u->v weight w
3 const dist = new Array(n).fill(0);
4 for (let round = 1; round <= n; round++) {
5 let changed = false;
6 for (const {u, v, w} of edges) {
7 if (dist[u] + w < dist[v]) {
8 dist[v] = dist[u] + w;
9 changed = true;
10 }
11 }
12 if (!changed) return dist;
13 }
14 return null; // negative cycle, no solution
15}