Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <climits>
- #include <algorithm>
- using namespace std;
- int main() {
- int n, m; cin >> n >> m;
- vector < vector<int> >dist;
- dist.assign(n, vector<int>(n, INT_MAX));
- for (int i = 0; i < m; i++) {
- int u, v; cin >> u >> v;
- --u; --v;
- dist[u][v] = 1;
- dist[v][u] = 1;
- }
- for (int k = 0; k < n; k++) {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if (dist[i][k] != INT_MAX && dist[k][j] != INT_MAX) {
- dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
- }
- }
- }
- }
- int ans = INT_MIN;
- for (int i = 0; i < dist.size(); i++) {
- for (int j = 0; j < dist[0].size(); j++) {
- ans = max(ans, dist[i][j]);
- }
- }
- cout << ans << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement