Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cmath>
- const int INF = 1000000007;
- struct agent
- {
- int x;
- int y;
- };
- double dist(agent A, agent B)
- {
- int x = A.x - B.x;
- int y = A.y - B.y;
- return sqrt(x * x + y * y);
- }
- int main()
- {
- int n, x, y;
- std::cin >> n;
- std::vector<struct agent> agents(n);
- std::vector<std::vector<double> > g(n, std::vector<double>(n));
- for (int i = 0; i < n; ++i)
- std::cin >> agents[i].x >> agents[i].y;
- for (int i = 0; i < n; ++i)
- for (int j = i + 1; j < n; ++j)
- {
- double d = dist(agents[i], agents[j]);
- g[i][j] = d;
- g[j][i] = d;
- }
- std::vector<bool> used(n);
- std::vector<double> min_e(n, INF);
- min_e[0] = 0;
- double R = 0;
- for (int i = 0; i < n; ++i)
- {
- int v = -1;
- for (int j = 0; j < n; ++j)
- if (!used[j] && (v == -1 || min_e[j] < min_e[v]))
- v = j;
- if (R < min_e[v])
- R = min_e[v];
- used[v] = true;
- for (int to = 0; to < n; ++to)
- if (g[v][to] < min_e[to])
- min_e[to] = g[v][to];
- }
- std::cout << R;
- return 0;
- }
Add Comment
Please, Sign In to add comment