# グラフgと始点s # 負のサイクルがある場合Trueを返す bellmanFord(g, s): for v ← 0 to g.N-1: dist[v] ← INF dist[s] ← 0 for t ← 0 to N-1: updated ← False for u ← 0 to g.N-1: if dist[u] = INF: continue for e in g.adjLists[u]: if dist[e.v] > dist[u] + e.weight dist[e.v] ← dist[u] + e.weight updated ← True if t = N-1: return True # 負のサイクルを検知 if not updated: break # 更新がなければ終了 return false # 負のサイクルは存在しない