Advertisement
Mirbek

Бикфордов шнур

Jan 11th, 2022
717
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 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, m;
  9. int f[N][N];
  10.  
  11. int main(){
  12.     for (int i = 0; i < N; i++) {
  13.         for (int j = 0; j < N; j++) {
  14.             f[i][j] = inf;
  15.         }
  16.     }
  17.  
  18.     for (int i = 0; i < N; i++)
  19.         f[i][i] = 0;
  20.  
  21.     cin >> n >> m;
  22.  
  23.     for (int i = 1; i <= m; i++) {
  24.         int u, v, len;
  25.         cin >> u >> v >> len;
  26.         f[u][v] = min(f[u][v], len);
  27.         f[v][u] = min(f[v][u], len);
  28.     }
  29.  
  30.     for (int k = 1; k <= n; k++) {
  31.         for (int i = 1; i <= n; i++) {
  32.             for (int j = 1; j <= n; j++) {
  33.                 f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
  34.             }
  35.         }
  36.     }
  37.  
  38.     int radius = inf, ver = -1;
  39.  
  40.     for (int v = 1; v <= n; v++) {
  41.         int mx = 0;
  42.         for (int i = 1; i <= n; i++) {
  43.             if (f[v][i] == inf) continue;
  44.             mx = max(mx, f[v][i]);
  45.         }
  46.         if (radius > mx) {
  47.             radius = mx;
  48.             ver = v;
  49.         }
  50.     }
  51.  
  52.     cout << ver << " " << radius << endl;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement