Advertisement
Zhobra

Untitled

Jun 5th, 2022
1,015
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. void Floyd(vector<vector<pair<int, int>>>& G, int s)
  2. {
  3.  
  4.     vector<vector<double>> D;
  5.     D.assign(G.size(), vector<double>());
  6.     for (int i = 0; i < G.size(); i++)
  7.     {
  8.         D[i].assign(G.size(), INFINITY);
  9.         D[i][i] = 0;
  10.         for (auto j : G[i])
  11.         {
  12.             D[i][j.first] = j.second;
  13.         }
  14.     }
  15.        
  16.     for (int k = 0; k < G.size(); k++)
  17.     {
  18.         for (int i = 0; i < G.size(); i++)
  19.         {
  20.             for (int j = 0; j < G.size(); j++)
  21.             {
  22.                 D[i][j] = min(D[i][j], D[i][k] + D[k][j]);
  23.             }  
  24.         }
  25.     }
  26.  
  27.     for (int i = 0; i < D.size(); i++)
  28.     {
  29.         cout << i+1<<": ";
  30.         for (int j = 0; j < D[i].size(); j++)
  31.         {
  32.             cout << D[i][j];
  33.             if (j != D[i].size() - 1)
  34.                 cout << ", ";
  35.         }
  36.         cout << endl;
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement