Advertisement
Mirbek

Флойд

Jan 11th, 2022
689
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int N = 105;
  6. const int inf = 1e9;
  7.  
  8. int n;
  9. int a[N][N], f[N][N];
  10.  
  11. int main(){
  12.     cin >> n;
  13.  
  14.     for (int i = 1; i <= n; i++) {
  15.         for (int j = 1; j <= n; j++) {
  16.             cin >> a[i][j];
  17.             if (a[i][j] == -1) {
  18.                 f[i][j] = inf;
  19.             } else {
  20.                 f[i][j] = a[i][j];
  21.             }
  22.         }
  23.     }
  24.  
  25.     for (int k = 1; k <= n; k++) {
  26.         for (int i = 1; i <= n; i++) {
  27.             for (int j = 1; j <= n; j++) {
  28.                 f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
  29.             }
  30.         }
  31.     }
  32.  
  33.     int diameter = 0;
  34.  
  35.     for (int s = 1; s <= n; s++) {
  36.         for (int t = 1; t <= n; t++) {
  37.             if (f[s][t] == inf) continue;
  38.             diameter = max(diameter, f[s][t]);
  39.         }
  40.     }
  41.  
  42.     cout << diameter << endl;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement