Advertisement
adnan_dipta89

Floyd-Warshall

Oct 1st, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define MAX 100
  4. typedef long long int ll;
  5. vector< vector<ll> > graph;
  6. ll adjMatrix[MAX+1][MAX+1];
  7. ll b[MAX+1][MAX+1];
  8. ll n, m;
  9. void FloydWarshall()
  10. {
  11.     for(ll k = 1; k <= n; k++)
  12.     {
  13.         for(ll i = 1; i <= n; i++)
  14.         {
  15.             for(ll j = 1; j <= n; j++)
  16.             {
  17.                 if(b[i][k] != INT_MAX && b[k][j] != INT_MAX && i != j)
  18.                 {
  19.                     if(( b[i][k]+b[k][j] < b[i][j] )|| b[i][j] == INT_MAX)
  20.                     {
  21.                         b[i][j] = b[i][k]+b[k][j];
  22.                     }
  23.                 }
  24.             }
  25.         }
  26.     }
  27. }
  28.  
  29. int main()
  30. {
  31.     cin >> n >> m;
  32.     for(ll i = 0; i < m; i++)
  33.     {
  34.         vector<ll> V;
  35.         ll u, v, w;
  36.         cin >> u >> v >> w;
  37.         V.push_back(u);
  38.         V.push_back(v);
  39.         V.push_back(w);
  40.         graph.push_back(V);
  41.     }
  42.     for(ll i = 0; i <= n; i++)
  43.     {
  44.         for(ll j = 0; j <= n; j++)
  45.         {
  46.             adjMatrix[i][j] = INT_MAX;
  47.             b[i][j] = INT_MAX;
  48.         }
  49.     }
  50.     for(ll i = 0; i < graph.size(); i++)
  51.     {
  52.         ll u = graph[i][0], v = graph[i][1], w = graph[i][2];
  53.         adjMatrix[u][v] = w;
  54.         b[u][v] = w;
  55.     }
  56.     FloydWarshall();
  57.     for(ll i = 1; i <= n; i++)
  58.     {
  59.         cout << "Distances with respect to " << i << " :" << endl;
  60.         for(ll j = 1; j <= n; j++)
  61.         {
  62.             cout << b[i][j] << "\t";
  63.         }
  64.         cout << endl;
  65.     }
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement