Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <map>
  3. #include <algorithm>
  4. #include <cmath>
  5. #include <vector>
  6.  
  7. using namespace std;
  8. int n;
  9.  
  10. void dfs(int v, vector<vector<int> > &g, int m, vector<bool> &used) {
  11.     used[v] = true;
  12.     for (int i = 0; i < n; ++i) {
  13.         if (g[v][i] <= m && !used[i]) {
  14.             dfs(i, g, m, used);
  15.         }
  16.     }
  17. }
  18.  
  19. int main() {
  20.     ios_base::sync_with_stdio(0);
  21.     cin.tie(0);
  22.     //cout.tie(0);
  23.    
  24.     cin >> n;
  25.     vector<vector<int> > g(n, vector<int> (n));
  26.     for (int i = 0; i < n; ++i) {
  27.         for (int j = 0; j < n; ++j) {
  28.             cin >> g[i][j];
  29.         }
  30.     }
  31.     int l = -1, r = 1e9;
  32.     while (l + 1 != r) {
  33.         int m = (l + r) / 2;
  34.         vector<bool> used(n);
  35.         dfs(0, g, m, used);
  36.         bool f = true;
  37.         for (int i = 0; i < n; ++i) {
  38.             if (!used[i]) f = false;
  39.         }
  40.         if (f) {
  41.             r = m;
  42.         } else {
  43.             l = m;
  44.         }
  45.     }
  46.     cout << r;
  47.     return 0;
  48. }
  49.  
  50.  
  51. /*
  52.  4
  53.  0 10 12 16
  54.  11 0 8 9
  55.  10 13 0 22
  56.  13 10 17 0
  57.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement