Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ll long long
- #define fi first
- #define se second
- int V;
- using _edge = pair<int, ll>;
- vector<vector<_edge>> edges;
- vector<vector<ll>> FloydWarshall()
- {
- vector<vector<ll>> dist(V, vector<ll>(V, LLONG_MAX));
- for(int u = 0; u < V; u++)
- {
- dist[u][u] = 0;
- for(_edge e : edges[u])
- dist[u][e.fi] = e.se;
- }
- for(int i = 0; i < V; i++)
- for(int u = 0; u < V; u++)
- for(int v = 0; v < V; v++)
- if(dist[u][i] != LLONG_MAX && dist[i][v] != LLONG_MAX)
- dist[u][v] = min(dist[u][v], dist[u][i] + dist[i][v]);
- return dist;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement