vector<int> bellman_ford(int V, vector<vector<int>>& edges, int S) { vector<int> dis(V,1e8); dis[S] = 0; for(int cnt = 0; cnt<=V-1; cnt++){ for(auto edge : edges){ int u = edge[0]; int v = edge[1]; int w = edge[2]; if(dis[u] != 1e8 and dis[u] + w < dis[v]){ dis[v] = dis[u] + w; } } } // Check for negative weight cycles for(auto edge : edges) { int u = edge[0]; int v = edge[1]; int w = edge[2]; if(dis[u] != 1e8 && dis[u] + w < dis[v]) { // If we can still relax an edge, there is a negative weight cycle return {-1}; // Return an empty vector to indicate the presence of a negative cycle } } return dis; }