vadimk772336

боевой

Nov 19th, 2021 (edited)
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4.  
  5. const int INF = 1000000007;
  6.  
  7. struct agent
  8. {
  9.     int x;
  10.     int y;
  11. };
  12.  
  13. double dist(agent A, agent B)
  14. {
  15.     int x = A.x - B.x;
  16.     int y = A.y - B.y;
  17.     return sqrt(x * x + y * y);
  18. }
  19.  
  20. int main()
  21. {
  22.     int n, x, y;
  23.     std::cin >> n;
  24.     std::vector<struct agent> agents(n);
  25.     std::vector<std::vector<double> > g(n, std::vector<double>(n));
  26.  
  27.     for (int i = 0; i < n; ++i)
  28.         std::cin >> agents[i].x >> agents[i].y;
  29.  
  30.     for (int i = 0; i < n; ++i)
  31.         for (int j = i + 1; j < n; ++j)
  32.         {
  33.             double d = dist(agents[i], agents[j]);
  34.             g[i][j] = d;
  35.             g[j][i] = d;
  36.         }
  37.  
  38.  
  39.     std::vector<bool> used(n);
  40.     std::vector<double> min_e(n, INF);
  41.  
  42.     min_e[0] = 0;
  43.     double R = 0;
  44.  
  45.     for (int i = 0; i < n; ++i)
  46.     {
  47.         int v = -1;
  48.         for (int j = 0; j < n; ++j)
  49.             if (!used[j] && (v == -1 || min_e[j] < min_e[v]))
  50.                 v = j;
  51.  
  52.         if (R < min_e[v])
  53.             R = min_e[v];
  54.  
  55.         used[v] = true;
  56.         for (int to = 0; to < n; ++to)
  57.             if (g[v][to] < min_e[to])
  58.                 min_e[to] = g[v][to];
  59.     }
  60.  
  61.     std::cout << R;
  62.     return 0;
  63. }
  64.  
Add Comment
Please, Sign In to add comment