Okorosso

Floyd-Warshall

May 26th, 2021
1,060
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINS
  2. #include <fstream>
  3. #include <vector>
  4. #include <string>
  5. #include <set>
  6. #include <algorithm>
  7. #include <map>
  8. #include <queue>
  9.  
  10. using namespace std;
  11.  
  12. //bool dfs(int v, int prev){
  13. //  used[v] = 1;
  14. //  for (int i = 0; i < mat[v].size(); i++)
  15. //  {
  16. //
  17. //      if (used[mat[v][i]] == 0){
  18. //          dfs(mat[v][i], v);
  19. //          used[v] = 2;
  20. //      }
  21. //  }
  22. //  used[v] = 2;
  23. //  return true;
  24. //}
  25. //
  26. //bool cheker(vector<int> ch, int f){
  27. //  for (int i = f; i < ch.size(); i++){
  28. //      if (ch[i] != 2){
  29. //          return false;
  30. //      }
  31. //
  32. //  }return true;
  33. //}
  34.  
  35. struct edges{
  36.     int x, y, value;
  37. };
  38.  
  39.  
  40. int main(){
  41.  
  42.  
  43.  
  44.     ifstream fin("input.txt");
  45.     ofstream fout("output.txt");
  46.  
  47.  
  48.     long long n, m, s;
  49.  
  50.     fin >> n >> m;
  51.     vector<edges> edge(m);
  52.     vector <vector<int>> d(n, vector<int>(n, INT_MAX));
  53.  
  54.  
  55.     for (int i = 0; i < m; i++){
  56.         int a, b, c;
  57.         fin >> a >> b >> c;
  58.         a--;
  59.         b--;
  60.  
  61.         d[a][b] = c;
  62.         //d[b][a] = c;
  63.     }
  64.  
  65.     for (int i = 0; i < n; i++){
  66.         d[i][i] = 0;
  67.     }
  68.  
  69.     for (int k = 0; k < n; k++){
  70.         for (int i = 0; i < n; i++){
  71.             for (int j = 0; j < n; j++){
  72.                 if (d[i][k] != INT_MAX && d[k][j] != INT_MAX){
  73.                     d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
  74.                 }
  75.             }
  76.         }
  77.  
  78.     }
  79.  
  80.     for (int i = 0; i < n; i++){
  81.         for (int j = 0; j < n; j++){
  82.             if (d[i][j] != INT_MAX){
  83.                 fout << d[i][j] << ' ';
  84.             }
  85.             else{
  86.                 fout << ' ';
  87.             }
  88.         }
  89.         fout << endl;
  90.     }
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment